new 和 newInstance() 有什么差别?

2333

记录一下

new 关键字

new 是 java 中的关键字,是创建一个新对象的关键字。用 new 这个关键字的话,是调用 new 指令创建一个对象,然后调用构造方法来初始化这个对象,如果饭编译 .class 的话,会看到一个 Object obj = new Object() 这种语句,先调用 new 指令生成一个对象,然后调用 dup 来复制对象的引用。最后调用 Object 的构造方法。

newInstance 方法

newInstance 不是关键字,是 java 反射框架当中 Class 对象创建新对象的方法。在这个过程当中是先取了这个类不带参数的构造方法,然后调用构造方法的 newInstance 来创建对象名: java.lang.Class.newInstance(),如:

Class class = String.class; Object newInstance = class.newInstance();

newInstance() 常用于工厂设计模式中,在该模式中工厂类的该方法返回一个工厂 bean。如:

Factory factory = new Factory(); Object obj = factory.newInstance();

画面

  • 可以扩展 new 关键字 发生了什么?
  • Bean 的生命周期
  • 反射相关知识
  • 设计模式