字符串文字和字符串对象之间的区别

字符串文字和字符串对象之间的区别,第1张

字符串文字和字符串对象之间的区别

因为

s1 + s2
不是 常量表达式
,由于
s1
s2
不是
final
,因此其结果不会被插入,即创建另一个对象来表示它,因此引用比较产生
false

JLS
3.10.5字符串文字

使用String.intern方法,对字符串常量(或更常见的是常量表达式的值(第15.28节)的字符串)进行“ interned”,以便共享唯一的实例。

JLS
15.28常数表达式

编译时常量表达式是表示原始类型或String的值的表达式,该值不会突然完成,并且仅使用以下内容组成:

  • 引用常量变量的简单名称(第4.12.4节)。

JLS
4.12.4定义了

final
变量。

如果声明

s1
s2
final
s3 == s5
则为
true



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5506601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存