.getClass()是动态的,其余是静态的。
.class和class.forName()只能返回类内field的默认值,getClass可以返回当前对象中field的最新值
Class.forName() 返回的是一个类,.newInstance() 后才创建一个对象,Class.forName()的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的
class demo.A
class demo.A (这里也可以得到一个类的Class对象是唯一的)
.class和class.forName()只能返回类内field的默认值,getClass可以返回当前对象中field的最新值
Class.forName() 返回的是一个类,.newInstance() 后才创建一个对象,Class.forName()的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的
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对象是唯一的)