Java只会自动实现字符串文字.new
默认情况下,不会禁用新的String对象(使用关键字创建).您可以使用String.intern()方法实现现有的String对象.调用intern
将检查现有的String池以查找匹配的对象,如果存在则返回它,如果没有匹配则添加它.
如果添加该行
s3 = s3.intern();
创建后立即使用您的代码s3
,您将看到输出的差异.
查看更多示例和更详细的说明.
这当然提出了何时使用==以及何时equals
在Java中使用该方法这一非常重要的主题.equals
在处理对象引用时,您几乎总是想要使用.==运算符比较参考值,这几乎不是您要比较的意思.了解差异有助于您决定何时使用==或equals
.
Java只会自动实现字符串文字.new
默认情况下,不会禁用新的String对象(使用关键字创建).您可以使用String.intern()方法实现现有的String对象.调用intern
将检查现有的String池以查找匹配的对象,如果存在则返回它,如果没有匹配则添加它.
如果添加该行
s3 = s3.intern();
创建后立即使用您的代码s3
,您将看到输出的差异.
查看更多示例和更详细的说明.
这当然提出了何时使用==以及何时equals
在Java中使用该方法这一非常重要的主题.equals
在处理对象引用时,您几乎总是想要使用.==运算符比较参考值,这几乎不是您要比较的意思.了解差异有助于您决定何时使用==或equals
.