1、相同点: 通过这几种方式,得到的都是Java.lang.Class对象(这个是上面讲到的 类在加载时获得的最终产物) 例如: package demo; public class A { public static void main(String[] args) throws Exception { System.out.println(A.class);//通过类.class获得Class对象
A a = new A(); System.out.println(a.getClass());//通过 实例名.getClass()获得Class对象 System.out.println(Class.forName("demo.A"));//通过Class.forName(全路径)获得Class对象 System.out.println("................................."); System.out.println(a);//使用不同的方式创建对象 System.out.println(A.class.newInstance()); System.out.println(a.getClass().newInstance()); System.out.println(Class.forName("demo.A").newInstance()); } }
结果:class demo.A class demo.A class demo.A (这里也可以得到一个类的Class对象是唯一的) ....................................... demo.A@de6ced demo.A@c17164 demo.A@1fb8ee3 demo.A@61de33