反射与类对象获取-Java学习
类对象 类对象指的是一个类在jvm中加载后所形成的对象,每一个类都只有一个类对象,该类对象被所有的实例对象所共享。 类之间有不同的方法,不同的属性。类对象,就是用于描述这种类,都有什么属性,什么方法的。 获取类对象有三种方式: Class.forName Hero.class new Hero().getClass() Class pClass1 = Class.forName(className); Class pClass2 = Hero.class; Class pClass3 = new Hero().getClass(); 一个JVM中,一种类,只会有一个类对象存在。所以以上三种方式取出来的类对象,都是一样的( 一个ClassLoader下,一种类只会有一个类对象存在。通常一个JVM下,只会有一个ClassLoader ) 获取类对象的时候,会导致类属性被初始化 无论什么途径获取类对象,都会导致静态属性被初始化,而且只会执行一次。(除了直接使用 Class c = Hero.class 这种方式,这种方式不会导致静态属性被初始化) 反射 与传统的通过new来获取对象的方式不同,反射机制,会先拿到“类对象”,然后通过类对象获取“构造器对象”,再通过构造器对象创建一个对象 //传统的使用new的方式创建对象 Hero h1 =new Hero(); h1.name =