java反射的学习总结

本文深入解析Java反射机制,包括其工作原理、如何利用Class对象获取类信息及动态创建实例等核心概念。此外还探讨了反射在实际应用中的作用,如动态加载类,这是Spring框架的基础。

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

 java reflect概念理解

看了网上很多材料,以及官方文档,真心觉得,很多时候需要自己消化理解了才行,别人的很多概念,并不好用,甚至有说错的。。

现总结如下:

1、jvm有个运行数据区,其中又划分为:方法区、堆区和栈区;跟java反射有关的是方法区。

2、容易误解的点:反射的实现,依靠的是个“类的镜子对象”(自个定义的囧),这样好理解些,官方定义是:类对象。。真是看吐了,那跟普通对象又有啥区别。还有些说这个“类的镜子对象”是一定要有创建类的普通对象的时候才会出现,真是扯淡。。

比如这样一串代码:Object o = new Object ();

首先运行程序时,扔给了jvm自动将程序跑起来,编辑阶段:代码会编译一个.class文件,然后再被类加载器将Object o加载进了内存中;内存方法区得知了一个叫Object的类,于是,就开始创建了一个“Object的镜子对象”,注意它并不是由new Object()创建出来的对象,后续反射通过java.lang.Class来动态捕获。


3、接下来理解就简单了,用法虽然很多,但是基本差不多。

无非是能对JVM运行程序期间,通过自主创建三类(Construction、Field、Method)对象实例,去读取并管理所有的类的所有信息:类、构造方法、属性和方法,以及方法、属性上的注解、泛型(某些情况下才行),且能动态创建对象。


4、反射的作用:

当我们的程序在运行时,需要动态的加载一些类这些类可能之前用不到所以不用加载到jvm,而是在运行时根据需要才加载,这样的好处对于服务器来说不言而喻,可以网上搜搜,这里不多做解释,也是Spring的基础。

来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值