A a = new A()相当于产生了一个对象,由一个名字叫a的引用指向这个对象,可以通过引用a来操作这个对象 new A()相当于产生了一个对象,这个对象没有引用指向它,也不知道叫什么名字
Class.forName 表示加载一个类 new A 表示除了加载一个类之外,还产生这个类的实例加载一个类会初始化类信息,以及带有 static 的东西,比如静态成员、静态方法、静态内部类,以及静态块 new A() 与下面这两句的作用是一样的:A a = (A)Class.forName("xxx.xxx.A").newInstance();
那么Class.faoName("com.csdn.util.Person");这样会将Person加载到内存,也就是说内存中
会有一上与Persno关联的Class对象.这时候此类中的静态代码块会被执行。但并未产生Person的实例.而new Person();
则上而的工作会得作一遍,并且还会产生一个Person类的实例。也就是说一个是加载,一个是实例化,这就是二者的区别.
new A()相当于产生了一个对象,这个对象没有引用指向它,也不知道叫什么名字
new A 表示除了加载一个类之外,还产生这个类的实例加载一个类会初始化类信息,以及带有 static 的东西,比如静态成员、静态方法、静态内部类,以及静态块
new A() 与下面这两句的作用是一样的:A a = (A)Class.forName("xxx.xxx.A").newInstance();