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的监控

0
0

翔仔

2020-09-16

反射有一个比较重要的作用就是实现ioc容器,对服务进行注入,一个比较典型的应用就是spring容器,里面的service层接口都是通过反射去获取配置创建对应的实例并注入。感兴趣你可以去了解一下spring的ioc原理。

0
2
翔仔
回复
qq_大雨还在下_03432217
Spring的控制反转IOC可以用集成和接口实现?这个不现实吧?首先,你的Xml文件里面的配置信息怎么反解成类实例呢?不用反射的话。。你当然也可以用序列化和逆序列化,但是想想用户去做配置的时候,适应那套晦涩的语法是不是很困难?
2020-09-18
共2条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程