Java中new()与newInstance()的区别

本文探讨了Java中new()与newInstance()的区别与使用场景。new()创建的对象不易被回收,适合高效调用构造方法,而newInstance()适用于依赖注入和接口编程,能调用无参构造。在反射和面向接口编程时,newInstance()是必要选择,以避免内存溢出风险。
摘要由CSDN通过智能技术生成

new()

new()有如下特点:

  • 不容易被回收(只有指向对象的引用被移除才会被回收)
  • 相对与newInstance()更高效
  • 可以调用任何形式的public构造方法

说完new()之后再说到newInstance()。
这个疑问的提出是我在看“Java的反射机制”时,里面介绍到的反射调用及其中newInstance()方法
在这里插入图片描述

newInstance()

newInstance()有如下特点:

  • 容易被回收,故不容易像new()一样存在的内存溢出的风险
  • 效率较低
  • 只能调用且必须调用到无参数的构造方法

newInstance()的意义:

newInstance()是实现IOC、反射、面对接口编程 和 依赖倒置 等技术方法的必然选择,new 只能实现具体类的实例化,不适合于接口编程。

故在进行反射和面向接口编程等行为时必须用newInstance()实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值