使用“”或构造函数创建Java字符串?

85 篇文章 0 订阅
82 篇文章 0 订阅

小伙伴们注意了!

小编在这里给大家送上关注福利:

转发本文,关注+私信小编“资料”即可领取小编精心准备的资料一份!

在Java中,字符串可以通过两种方式创建:

使用双引号和使用构造函数的区别是什么?

一、 双引号vs.构造函数

这个问题可以用两个简单的例子来回答。

例子1:

a==b为真,因为a和b引用方法区域中的相同字符串文字。
内存引用是相同的。

当多次创建相同的字符串文字时,只存储每个不同字符串值的一个副本。
这叫做“字符串实习”。
Java中的所有编译时常量字符串都是自动换行的。

例子2:

c==d为false,因为c和d引用堆中的两个不同对象。
不同的对象总是有不同的内存引用。

此图说明了上述两种情况:

constructor vs double quotes Java String - New Page

二、 运行时字符串实习

感谢LukasEder(他的评论如下):

字符串实习仍然可以在运行时,即使两个字符串是用构造函数构造:

三、何时使用哪个

因为文字“abcd”已经是String类型,所以使用构造函数将创建额外的不必要的对象。
因此,如果您只需要创建一个字符串,那么应该使用双引号。

如果您确实需要在堆中创建一个新对象,那么应该使用构造函数。

最后,想学习Java的小伙伴们!

转发!

转发后关注+私信回复:“资料”就可以拿到一份我为大家准备的Java学习资料!
小编V❤: suxueJava

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值