Java反射机制存在的必要性是什么,你给我详细讲一讲,并举例
来源:6-4 什么是反射
qq_大雨还在下_03432217
2020-09-16
Java反射机制存在的必要性是什么,你给我详细讲一讲,并举例
写回答
2回答
-
Hankong
2022-10-23
也是我一直以来疑惑的问题。多年以后回答一下,仅供参考了。
从反射的定义去理解,也就是我们为什么需要在java程序在运行的过程中去感知和获取,关键是状态在运行中。
Java 在线debug,debug期间不停服。假设某些线上问题仅存在运行中的某个实例有问题,但其他实例没问题。可能是代码逻辑问题,也可能是这个实例的硬件环境问题,需要单独对这个实例排查。
1.6jdk可以加载外部的一个agent包的代码,来动态修改或增强 现有的代码逻辑。Instrumentation 就是在代理的过程中又jvm提供的。我们知道当时错误case的请求参数的话,就可以在不停止服务器的情况下重复执行这个请求,执行过程中通过代理去观察每一步执行情况。
以上说的是观察,并没有改变原先代码的逻辑。以下是我们需要动态修改运行时的代码逻辑的场景:
然后如果bug是代码原因,我们(存在理论上的方案,虽然一般上都是改了代码立马去灰度上线吧)通过代理去修改线上的代码,先解决这个问题。
java-agent
arthas的监控
00 -
翔仔
2020-09-16
反射有一个比较重要的作用就是实现ioc容器,对服务进行注入,一个比较典型的应用就是spring容器,里面的service层接口都是通过反射去获取配置创建对应的实例并注入。感兴趣你可以去了解一下spring的ioc原理。
022020-09-18
相似问题