string是java的关键字吗_java – 为什么String不需要新的关键字

使用以下行,您不是在堆中创建新的String对象,而是重用字符串文字(如果已经可用):

String message = "Hai";

“Hai”是字符串文字池中的字符串文字。因为,字符串是不可变的,它们是可重用的,所以它们被JVM集中在字符串文字池中。这是推荐的方式,因为你是重用它。

但是,使用下面你实际上是创建一个新对象(在堆):

String message = new String("Hai");

new String(“Hai”)是一个新的String对象。在这种情况下,即使字面值“Hai”已经在字符串文字池中,也会创建一个新对象。不建议这样做,因为可能会导致多个具有相同值的String对象结束。

Are there other classes which do not require new to create object ??

实际上,不能使用关键字new来创建Java中的任何对象。

例如

Integer i = 1;

这并不意味着Integer对象是在不使用new的情况下创建的。我们不需要明确使用新的关键字。但是,在引擎盖下,如果值为1的Integer对象不存在于缓存中(整数对象由JVM缓存),将使用new关键字创建它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值