JAVA-反射机制

反射概念:
1.在运行期jvm可以对一个类洞悉它的属性和方法,对任意一个对象都能访问它的属性和方法
2.依靠这种机制,可以动态创建一个类的对象和调用对象的方法

反射常用的API:
1.获取class对象:class.forname(完整类名)
2.获取构造方法:class对象.getConstructor
3.获取类的方法:getMethod和getMethods
4.创建一个对象实例:class对象.newInstance

反射的优点:
1.灵活性高,可以动态获取类的相关信息,动态创建对象实例

反射的缺点:
1.效率低,编译器没法对反射相关的代码做优化,例如jit编译器
2.会破坏封装,通过反射可以访问类的私有方法,不安全

使用场景:
1.开发框架,反射+xml+xml解析

扩展:
jit的概念:
当虚拟机发现某个方法或代码块运行特别频繁,就会把这些代码认定为“热点代码”(Hot Spot Code),为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称 为即时编译器(Just In Time Compiler,JIT)

优化技术:
1.公共字表达式擦除
2.数组边界消除
3.方法内联
4.逃逸分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值