Java面试题集锦07—Java的反射机制

27.反射的原理是什么
反射是为了能够动态的加载一个类,动态的调用一个方法,动态的访问一个属性等动态要求而设计的。它的出发点就在于JVM会为每个类创建一个java.lang.Class类的实例,通过该对象可以获取这个类的信息,然后通过使用java.lang.reflect包下得API以达到各种动态需求。

28.Class类的含义和作用是什么
每一个Class类的对象就代表了一种被加载进入JVM的类,它代表了该类的一种信息映射。开发者可以通过3种途径获取到Class对象。

  • Class的forName()方法的返回值就是Class类型,也就是动态导入类的Class对象的引用。
    public static Class<?> forName(String className) throws ClassNotFoundException
  • 每个类都会有一个名称为Class的静态属性,通过它也是可以获取到Class对象的,示例代码如下:
    Class<Student> clazz = Student.class; // 访问Student类的class属性
  • Object类中有一个名为getClass的成员方法,它返回的是对象的运行时类的Class对象。因为Object类是所有类的父类,所以,所有的对象都可以使用该方法得到它运行时类的Class对象,示例代码如下:
    Student stu = new Student();
    Class<Student> clazz = stu.getClass(); // 调用Student对象的getName方法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,977评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 9,273评论 0 11
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,602评论 0 11
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,942评论 0 62
  • 昨日做下的事: 和一位老板交谈、实地体验了解项目情况,也和他聊了一点其它方面事。 健身房里健身、练散打、练双截棍。...
    文建伟CZYH阅读 3,505评论 0 0