java中反射的原理

本文深入探讨Java反射机制的概念、工作原理及其实现过程,包括如何通过类加载器加载类对象、使用Class对象获取类信息、实例化类对象以及调用类方法。通过实例演示,直观展示反射在开发中的灵活运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的回忆下,下次做具体的分析。

首先有一个反射包,这个包里有这些类,

方法类:放类里的一些方法,

构造方法类,放构造方法信息;

字段类,放类的一些字段信息,

Class类,这个类的类型信息,一个类在编译完后会形成一个.class文件,这个文件里会有一个Class类存放这个类的类型信息。


运行期间,我们如果要产生某个类的对象。jvm会根据.class类来找Class对象,并把他加载到内存中(如果已经加载到了内存,就不会在加载了)。加载到内存后呢,以后就都会用这个Class来产生该类型的所有对象了。


所谓的反射就是,通过类加载器ClassLoader去加载这个类的Class对象Class c1 = Class.forName(className),这里会先从内存里去找,如果没有找到就把这个Class放到内存中。然后通过这个Class对象.newInstance()拿到类实例,Object c = c1.newInstance();得到对象后就可以拿到这个类的所有方法了,并且可以拿到方法的参数列表,然后通过invoke方法就可以执行这个类的方法了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值