【发布时间】:2015-11-09 14:33:10
【问题描述】:
在这个例子中,我认为结果是正确的。我以为变量存储在字符串池中。 答案是:返回 false 因为内存中的两个 String 对象不一样。一个直接来自字符串池,另一个来自使用字符串操作构建。
String a = "";
a += 2;
a += 'c';
a += false;
if ( a == "2cfalse") System.out.println("==");
我不明白变量 a 的存储位置
【问题讨论】:
-
我不认为有任何保证会从字符串池中提取特定字符串。
-
@cricket_007:不,绝对不是。它并没有就此询问任何事情。询问
a是否被拘留。 -
@Makato - 不过,如果因为那篇文章中讨论的原因是错误的答案
-
@cricket_007:我很好知道为什么结果是
false,但我认为不是 这个问题的重点。
标签: java