newinstance和new有什么区别
2016-05-03 · 百度认证:北京新东方迅程网络科技股份有限公司官方账号
new 是java中的关键字,是创建一个新对象的关键字。用new这个关键字的话,是调用new指令创建一个对象,然后调用构造方法来初始化这个对象,如果反编译class的话,会看到一个Object obj=new Object();这种语句,会先调用new指令生成一个对象,然后调用dup来复制对象的引用,最后调用Object的构造方法。
newInstance 不是关键字,newInstance() 是java反射框架中类对象(Class)创建新对象的方法。在这个过程中,是先取了这个类的不带参数的构造方法,然后调用构造方法的newInstance来创建对象
名:Object java.lang.Class.newInstance();如: Class clazz = String.class;
Object newInstance = clazz.newInstance();
newInstance() 也经常见于工厂设计模式中,在该模式中,共产类的该方法返回一个工厂bean。
如: Factory factory = new Factory();
Object obj = factory.newInstance();
严格意义上来讲,这两者并没有可比较性,因为一个是java的关键字,有明确的用法和定义。一个是经常使用,但非标准的方法名称。