- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java程序员面试宝典(共3篇)
java程序员面试宝典(共3篇)
回目录
第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类的实例,通过该对象可以获取这个类的信息,然后通过使用java.lang.reflect包下的API以达到各种动态需求。
面试题087Class类的含义和作用是什么
Class类在反射机制中起到了非常关键的作用,它是开发者进行反射开发的入口。那应该如何获取一个类的Class对象呢?如何让一个类动态的加载到JVM中呢?通过回答本例的问题,深入地了解Class类的含义和用途。
【出现频率】 ★★★★★
【关键考点】
Class类的含义;
如何获取Class对象。
【考题分析】
在前面内容中,读者知道了Class是用来记录一个类的各种信息的,它伴随着类的加载而创建。那么,类会在什么时候被加载到JVM中呢?概括来说,一个普通的Java类,会在以下几种情况,被加载到JVM中。
(1)需要使用该类创建对象。如下代码就会到导致Student类被加载到JVM中:
(2)访问该类的静态成员,示例代码如下:
System.out.println(#url#unt);Sutdent stu = new Student(); //创建学生对象
(3)使用Class类的静态forName()方法,动态地加载一个指定类名的类。如果类未找到,则抛出ClassNotFoundException异常,示例代码如下:
Class.forName(quot;com.test.Studentquot;);//访问静态的count成员变量//动态加载Student类
说明:JDBC导入驱动类,就是Class.forName()的一个常用例子。
不管通过什么样的形式,类一旦被加载进入JVM以后,就会为它创建一个Class类的实例对象。那么,开发者又该如何得
您可能关注的文档
- 2016年关于《童年》中考阅读题.doc
- 2016年公务员面试部分真题(共3篇).doc
- 2016年云南省中考英语试题.doc
- 2016年医师定期考核题库-法律法规(共3篇).doc
- 2016年初中化学竞赛试题及答案.doc
- 2016年儿科专业定期考核试卷(共3篇).doc
- 2016年各省面试真题(共3篇).doc
- 2016年四川对口高职高考语文试题.doc
- 2016年外交部面试真题(共2篇).doc
- 2016年大学生村官考试面试(共3篇).doc
- GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs).pdf
- 中国国家标准 GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs).pdf
- 《GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs)》.pdf
- GB/T 39560.302-2024电子电气产品中某些物质的测定 第3-2部分:燃烧-离子色谱法(C-IC)筛选聚合物和电子件中的氟、氯和溴.pdf
- 中国国家标准 GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样.pdf
- 中国国家标准 GB/T 39560.302-2024电子电气产品中某些物质的测定 第3-2部分:燃烧-离子色谱法(C-IC)筛选聚合物和电子件中的氟、氯和溴.pdf
- GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样.pdf
- 《GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样》.pdf
- 《GB/T 39560.303-2024电子电气产品中某些物质的测定 第3-3部分:配有热裂解/热脱附的气相色谱-质谱法(Py/TD-GC-MS)筛选聚合物中的多溴联苯、多溴二苯醚和邻苯二甲酸酯》.pdf
- 中国国家标准 GB/T 39560.303-2024电子电气产品中某些物质的测定 第3-3部分:配有热裂解/热脱附的气相色谱-质谱法(Py/TD-GC-MS)筛选聚合物中的多溴联苯、多溴二苯醚和邻苯二甲酸酯.pdf
文档评论(0)