java程序员面试宝典(共3篇).doc

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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类的实例对象。那么,开发者又该如何得

您可能关注的文档

文档评论(0)

1045141460 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档