1.new 调用构造器,创建对象,构造器其实是类的一个默认static方法,因为所有的类都会在对其第一次使用时动态加载到jvm中,而当程序创建第一个对类的静态成员的引用时,就会加载这个类。 2.Class.forName()输入所加载类的完整路径,包括包名 3.newInstance()需有无参默认构造器,在不知道类类型时可以使用此方法创建对象。 4.clone 需已创建有对象,通过clone方法克隆得到的对象不是初始化时的,和通过new得到的不一样。 5.reflect 在运行时加载类信息, rtti runtime type infomation 无论是rtti或者反射与Java对象打交道,在用对象做事情之前,都需要先加载那个类的Class对象。因此对于类的.class文件对应JVM来说必须是可获取的;要么在本机器上要么通过网络获得。因此RTTI是在编译时打开和检查文件的.class。而对于反射来说,.class文件在编译时是不可获取的,所以是在运行时打开和检查.class文件。。。 |