- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9 章 Java 的反射机制
反射机制(Reflection ),是Java 提供的一项比较高级的功能,一般的Java 开发者使
用它的时候相对比较少。但是,Java 的反射却是大多数框架的基础,例如,Struts、Hibernate
和Spring 等。反射机制就好像外科医生的解剖工具,突然从外太空来了一个人,如何知道
它的具体构造呢?最好的办法就是把它解剖来看一看,反射机制就是用来解剖Java 的类、
接口、方法、属性等元素的。本章将包含关于Java 的反射机制的一些常见面试题,并且分
析这些题目和知识点,帮助读者梳理这些方面的知识。
9.1 反 射 基 础
反射提供了一种动态的功能,这种动态功能非常的强大。它主要体现在通过反射相关
的API ,就可以知道一个陌生的Java 类的所有信息,包括属性、方法、构造器等。而且元
素完全可以在运行时动态的进行创建或调用,而不必在JVM 运行时就进行确定。本节将集
中讨论有关Java 反射机制基础的常见面试题。
面试题086 反射的原理是什么
严格意义上来讲,Java 并不是动态语言,它并没有Perl 和Python 那样灵活多变。但是,
Java 的反射机制却让它显得动态起来,这是为什么呢?通过回答本例问题,将了解Java 反
射的原理是什么。
【出现频率】★★★★
【关键考点】
什么是反射机制;
反射机制的作用是什么。
【考题分析】
一般情况下,如果想生成这个类的对象时,运行这个程序的JVM 会确认这个类的Class
对象是否已经加载。如果尚未加载,JVM 就会根据类名查找.class 文件,并将其载入,一
旦这个类的Class 对象被载入内存,它就可以被用来创建这个类的所有对象。
另外,对于一个未知类型的引用来说,通常会采用强制类型转换的形式来得到开发者
想要的类型引用,如果执行了一个错误的类型转换,就会抛出一个 ClassCastException
异常。
在以上两个过程中,Class 类一直都在起作用。因为 Class 类实例包含的是一个 Java
类的全部信息,包括类名、方法、属性等。换句话来说,也就是 Class 对象就是代表一个
第9 章 Java 的反射机制
类的类。
Java 用Class 类来代表了所有的类,方便了开发者掌控类信息。通过Class,开发者可
以得到属性(Field )、方法(Method )、构造器(Constructor )、修饰符(Modifier )等信
息。在动态的获取这些信息以后,开发者就可以用该 Class 创建实例、调用任何方法、访
问任何属性等操作,这些也是反射的主要用途。
反射机制相关的API 主要集中在java.lang.reflect 包下面,开发者也就是利用该包下面
的接口和类进行相关的反射开发的。大多数的框架,如Struts、Hibernate 和 Spring,都会
频繁地使用反射API 来完成它们动态的功能。
【答案】
反射是为了能够动态地加载一个类,动态地调用一个方法,动态地访问一个属性等动
态要求而设计的。它的出发点就在于JVM 会为每个类创建一个java .lang.Class 类的实例,
通过该对象可以获取这个类的信息,然后通过使用jav a.lang.reflect 包下的API 以达到各种
动态需求。
面试题087 Class 类的含义和作用是什么
Class 类在反射机制中起到了非常关键的作用,它是开发者进行反射开发的入口。那应
该如何获取一个类的Class 对象呢?如何让一个类动态的加载到JVM 中呢?通过回答本例
的问题,深入地了解Class 类的含义和用途。
【出现频率】★★★★★
【关键考点】
Class 类的含义;
如何获取Class 对象。
【考题分析】
在前面内容中,读者知道了 Class 是用来记录一个类的各种信息的,它伴随着类的加
载而创建。那么,类会在什么时候被加载到JVM 中呢?概括来说,一个普通的Java 类,
会在以下几种情况,被加载到JVM 中。
(1)需要使用该类创建对象。如下代码就会到导致Student 类被加载到JVM 中:
Sutdent stu =
您可能关注的文档
最近下载
- photoshop实验指导书..doc VIP
- 文献阅读与数学写作:微积分的创立与发展++课件-2024-2025学年高二下学期数学人教A版(2019)选择性必修第二册.pptx VIP
- TPM全员生产维护培训课件(课件-36张).ppt VIP
- 《全国食品安全监督抽检实施细则》复习测试卷附答案.doc
- 一种铁电负电容晶体管的电路仿真模型及建模方法.pdf VIP
- 《智慧化税费申报与管理》教案 项目八 资源税和环境保护税智慧化申报与管理.docx VIP
- 建筑法培训课件.ppt VIP
- 铜陵铜化集团招聘考试试题.pdf
- 食品抽检复习试题有答案.doc
- 2025年秋季《南京照相馆》开学第一课主题班会课件.pptx VIP
文档评论(0)