类型信息(反射,RTTI)
类型信息 1.java如何在运行时识别对象和类的信息 "传统的"RTTI run-time type identification ,假设我们在编译时已经知道了所有类型,在编译的时候打开和检查.class文件 反射机制,允许在运行时发现和使用类的信息,在运行的时候打开和检查.class文件 运行时的类型信息使得你可以在程序运行时发现和使用类型信息 2.Class对象 Class对象这个特殊对象,包含了类有关的信息 每个类都有一个Class对象,保存在编译后的同名的 .class文件中 名词 类加载子系统 原生类加载器 所有的类都是对其第一次使用的时候,动态加载到JVM中,当程序创建第一个对 类的静态成员引用 时,就会加载这个类 构造器也是静态方法,new 在创建类的新对象的时候,也会被当做对类静态成员的引用 java程序运行时,不是将所有的类全部加载,而是需要的时候才进行加载 static初始化是在类加载的时候进行的 无论何时,只要想在运行时使用类型信息,就必须首先获得恰当的Class对象的引用 如何获得Class对象的引用? Class.forName("the class name"),不需要持有该类型的对象 就可以获得对象 T.class ,类字面常量 (注意,这个方法创建对Class对象的引用时,不会自动地初始化该Class对象) Object.getClass()