当我们编译一个类的java代码时,生成这个类的.class编译文件,在这个文件中有一段对这个类的描述,当jvm加载这个类时就可以生成这个类的Class对象。
A a = new A();当我们调用new方法对一个类进行实例时,实际上是在堆中查找这个类的Class对象,若存在,则根据Class对象创建这个类的实例。若不存在,则加载该类,生成Class对象,在生成实例。
所以我们在实例一个类时,不一定调用new方法,也可以先创建这个类的Class对象,再用Class对象的newinstance方法实例化。
下面介绍一下生成Class对象的方法:
1.类名.class;
2.class.forname("包名.类名");
3.
Class b=a.getclass();a是A的普通对象,b是A的class对象
4.基本数据类型对应的类如Integer的class对象获得:Integer.type