JAVA的反射机制

JAVA中的反射机制的定义

反射是Java语言的一个特性,它允许程序在运行时(注意不是编译的时候)来发现和使用类的信息。

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。

反射就是把java类中的各种成分映射成一个个的Java对象。

反射的作用

(1)在运行时判断任意一个对象所属的类;

(2)在运行时获取类的对象;

(3)在运行时访问java对象的属性,方法,构造方法等。

反射在JVM中的表现

反射与类加载机制

java中的类什么时候时候会进行加载?

1)java用new关键字去创建对象,发现对象对应的类未加载的时候需要加载;

2)用java的反射包对类发射调用的时候,类没有加载回去先加载对应的类;

3)还有当初始化一个类的时候,如果发现其父类没有被初始化就会先初始化它的父类。

4)程序运行的main入口对应的类也会被直接加载。

用反射加载类有哪些不同方法,区别是什么?

使用.class来创建Class对象的引用时,不会自动初始化该Class对象。

使用forName()会自动初始化并返回该Class对象。

使用classLoader就只将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance时才会去执行static块。

反射与代理机制的实现

动态代理机制是基于反射实现的,反射可以动态获取类的各个成分(成员变量,方法等),通过对这些成分的继承,接口实现可以实现具体的功能的扩展。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值