网易首页 > 网易号 > 正文 申请入驻

【Java面试题第七期】一文回答面试中常见反射问题?

0
分享至

java反射的作用

反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意个对象,都能够调用它的任意一个方法。在java中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。

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

2)在运行时构造任意一个类的对象。

3)在运行时判断任意一个类所具有的成员变量和方法。

4)在运行时调用任意一个对象的方法。

实现Java反射的类

1)Class:表示正在运行的Java应用程序中的类和接口。

注意: 所有获取对象的信息都需要Class类来实现。

2)Field:提供有关类和接口的属性信息,以及对它的动态访问权限。

3)Constructor:提供关于类的单个构造方法的信息以及它的访问权限。

4)Method:提供类或接口中某个方法的信息。

java反射机制

可以在运行时判断⼀个对象所属的类,构造⼀个类的对象,判断类具有的成员变量和方法,调用1个对象的方法。

4个关键的类:Class,Constructor,Field,Method。 getConstructor获得构造函数/getDeclardConstructor;

getField/getFields/getDeclardFields获得类所生命的所有字段;

getMethod/getMethods/getDeclardMethod获得类声明的所有方法,正常方法是⼀个类创建对象,而反射是1个对象找到1个类。

如何通过反射获取和设置对象私有字段的值?

可以通过类对象的 getDeclaredField()方法字段(Field)对象,然后再通过字段对象的 setAccessible(true)将其设置为可以访问,接下来就可以通过 get/set 方法来获取/设置字段的值了。

如何通过反射创建对象?

方法 1:通过类对象调用 newInstance()方法,例如:String.class.newInstance()

方法 2:通过类对象的 getConstructor()或 getDeclaredConstructor()方法获得构造器(Constructor)对象并调用其newInstance()方法创建对象,例如:String.class.getConstructor(String.class).newInstance(“Hello”);

反射机制的优缺点

优点:

1)能够运行时动态获取类的实例,提高灵活性;

2)与动态编译结合;

缺点:

1)使用反射性能较低,需要解析字节码,将内存中的对象进行解析。

解决方案:

1、通过setAccessible(true)关闭JDK的安全检查来提升反射速度;

2、多次创建一个类的实例时,有缓存会快很多;

3、ReflflectASM工具类,通过字节码生成的方式加快反射速度;

反射机制的应用场景有哪些?

反射是框架设计的灵魂。

在我们平时的项目开发过程中,基本上很少会直接使用到反射机制,但这不能说明反射机制没有用,实际上有很多设计、开发都与反射机制有关,例如模块化的开发,通过反射去调用对应的字节码;动态代理设计模式也采用了反射机制,还有我们日常使用的 Spring/Hibernate 等框架也大量使用到了反射机制。

举例:

①我们在使用JDBC连接数据库时使用Class.forName()通过反射加载数据库的驱动程序;

②Spring框架也用到很多反射机制,最经典的就是xml的配置模式。Spring 通过 XML 配置模式装载Bean 的过程:

1) 将程序内所有 XML 或 Properties 配置文件加载入内存中;

2)Java类里面解析xml或properties里面的内容,得到对应实体类的字节码字符串以及相关的属性信息;

3)使用反射机制,根据这个字符串获得某个类的Class实例;

4)动态配置实例的属性;

小程序:IT面试题练习

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
男子酒店入住后爬窗坠亡7天后才被发现 家属索赔57万余元 法院判了

男子酒店入住后爬窗坠亡7天后才被发现 家属索赔57万余元 法院判了

红星新闻
2026-04-24 16:14:33
“南航空姐”咆哮外籍乘务不懂中文,空少还原闹剧首次曝光!这事如果发生在新加坡……

“南航空姐”咆哮外籍乘务不懂中文,空少还原闹剧首次曝光!这事如果发生在新加坡……

新加坡眼
2026-04-23 14:39:44
60岁释永信情妇有多少?央视发文后,被他搞惨的4个女明星终翻身

60岁释永信情妇有多少?央视发文后,被他搞惨的4个女明星终翻身

国际阿尝
2026-03-31 19:36:37
退休后,你就别拼了!养老金达到“这个数”,好好享受晚年生活吧!

退休后,你就别拼了!养老金达到“这个数”,好好享受晚年生活吧!

CG说科技
2026-04-24 09:24:44
宋承炫宣布当爸!为爱隐退后定居美国,与圈外妻子迎来爱情结晶

宋承炫宣布当爸!为爱隐退后定居美国,与圈外妻子迎来爱情结晶

奇怪的鲨鱼们
2026-04-22 12:50:18
为什么华为和三星的差距,越追反而越大了?

为什么华为和三星的差距,越追反而越大了?

春雨说科技
2026-04-22 11:27:53
比封锁海峡更狠!伊朗亮出终极王牌,霍尔木兹海底光缆或将被切断

比封锁海峡更狠!伊朗亮出终极王牌,霍尔木兹海底光缆或将被切断

芳芳历史烩
2026-04-23 18:30:17
同省兄弟连引强援让广东汗颜 他们已经不再缺钱?

同省兄弟连引强援让广东汗颜 他们已经不再缺钱?

林子说事
2026-04-24 13:01:55
特朗普:美国“无意影响”伊朗参加2026年美加墨世界杯

特朗普:美国“无意影响”伊朗参加2026年美加墨世界杯

中国网
2026-04-24 10:42:04
姐姐50岁满头白发,坚持每天一碗蒸蛋,半年后黑发悄悄长出来了

姐姐50岁满头白发,坚持每天一碗蒸蛋,半年后黑发悄悄长出来了

荒野老五
2026-04-01 20:39:21
苹果手表血氧功能解禁:一场专利战的荒诞收尾

苹果手表血氧功能解禁:一场专利战的荒诞收尾

Ping值焦虑
2026-04-21 20:23:28
CCTV5直播斯诺克世锦赛!8强赛对阵出炉,21点30赵心童迎战丁俊晖

CCTV5直播斯诺克世锦赛!8强赛对阵出炉,21点30赵心童迎战丁俊晖

等等talk
2026-04-24 10:21:13
看完这7件事,我终于懂了:中国足球的离谱,早就超出了人类认知

看完这7件事,我终于懂了:中国足球的离谱,早就超出了人类认知

圣西罗的太阳
2026-04-23 13:24:10
永久禁止攀登的山峰

永久禁止攀登的山峰

新科文
2026-04-24 17:10:08
吃兰州拉面的人为什么越来越少了?网友:进店小心翼翼的怕说错话

吃兰州拉面的人为什么越来越少了?网友:进店小心翼翼的怕说错话

另子维爱读史
2026-02-27 20:31:34
决定人与人之间贫富差距的7个底层逻辑

决定人与人之间贫富差距的7个底层逻辑

洞见
2026-04-24 09:14:51
40分未必保级!曼联主帅曾42分降级,热刺三年不胜降级队

40分未必保级!曼联主帅曾42分降级,热刺三年不胜降级队

嗨皮看球
2026-04-24 17:36:27
为什么说财不外露?网友:好姐妹知道我家拆迁后,劝我说赌博刺激

为什么说财不外露?网友:好姐妹知道我家拆迁后,劝我说赌博刺激

夜深爱杂谈
2026-04-23 07:32:35
无才无德、装疯卖傻、一肚子草包,是谁捧红了这些跳梁小丑?

无才无德、装疯卖傻、一肚子草包,是谁捧红了这些跳梁小丑?

蹲坑看世界
2026-04-22 23:00:21
赖清德窜访失败之际,1架大陆飞机抵台,台当局对访问团提一要求

赖清德窜访失败之际,1架大陆飞机抵台,台当局对访问团提一要求

林子说事
2026-04-24 11:25:02
2026-04-24 18:20:49
IT乐知
IT乐知
it乐知· 程序员的私房笔记
122文章数 1038关注度
往期回顾 全部

科技要闻

DeepSeek V4牵手华为,价格依然"屠夫级"

头条要闻

媒体:伊朗将恢复往返中国航班 霍尔木兹决战或收兵了

头条要闻

媒体:伊朗将恢复往返中国航班 霍尔木兹决战或收兵了

体育要闻

里程碑之战拖后腿,哈登18分8失误

娱乐要闻

停工16个月!赵露思证实接拍新剧

财经要闻

19家企业要"铝代铜",格力偏不

汽车要闻

零跑Lafa5 Ultra北京车展上市:11.88-12.48万

态度原创

房产
时尚
艺术
家居
公开课

房产要闻

三亚安居房,突然官宣!

水晶专场 || 一眼就沦陷的绝美水晶,百元级的快乐

艺术要闻

赵孟頫仅存的《金刚经》真迹,曾被台北故宫“秘藏”多年,800年来无人超越!

家居要闻

自然肌理 温润美学

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版