new()
new()有如下特点:
- 不容易被回收(只有指向对象的引用被移除才会被回收)
- 相对与newInstance()更高效
- 可以调用任何形式的public构造方法
说完new()之后再说到newInstance()。
这个疑问的提出是我在看“Java的反射机制”时,里面介绍到的反射调用及其中newInstance()方法
newInstance()
newInstance()有如下特点:
- 容易被回收,故不容易像new()一样存在的内存溢出的风险
- 效率较低
- 只能调用且必须调用到无参数的构造方法
newInstance()的意义:
newInstance()是实现IOC、反射、面对接口编程 和 依赖倒置 等技术方法的必然选择,new 只能实现具体类的实例化,不适合于接口编程。
故在进行反射和面向接口编程等行为时必须用newInstance()实现