创建对象的方式
- newInstance是使用类的加载机制,创建好类比较已经加载过了,new是创建这个类,但是还没使用
- newInstance等于是做了new的操作+实例化的操作,new的操作是创建一个类,创建这个类不需要这个类是否加载过的
数据类型不同
- newInstance: 弱类型 (GC是回收对象的限制条件很低,容易被回收)、低效率、只能调用无参构造。
- new: 强类型(GC不会自动回收,只有所有的指向对象的引用被移除是才会被回收,若对象生命周期已经结束,但引用没有被移除,经常会出现内存溢出)、相对高效、能调用任何public构造。
使用场景
- 工厂模式,比如Android工厂模式_沙滩捡贝壳的小孩的博客-CSDN博客这个里头的工厂方法模式
- newInstance()是实现IOC、反射、面对接口编程 和 依赖倒置 等技术方法的必然选择,new 只能实现具体类的实例化,不适合于接口编程。