3 回答
TA贡献1806条经验 获得超8个赞
trueequals
String s = "a" + "bc"; String t = "ab" + "c"; System.out.println(s == t);
stStringst
String
TA贡献1776条经验 获得超12个赞
加载包含字符串文本的类或接口可能会创建一个新的String对象(§2.4.8)来表示该文本。如果已经创建了一个字符串对象来表示该文本的前一次出现,或者在一个字符串对象上调用了String.intern方法,则可能不会发生这种情况。
这可能不会发生String
1: a := "one"
--> if(pool[hash("one")] == null) // true
pool[hash("one") --> "one"]
return pool[hash("one")]2: b := "one"
--> if(pool[hash("one")] == null) // false, "one" already in pool
pool[hash("one") --> "one"]
return pool[hash("one")]ab(a == b) && (a.equals(b)) == true.
1: a := "one"2: b := new String("one")"one"(a == b) && (a.equals(b)) == false
(a == b) && (a.equals(b))可能是 true或 false(总使用 equals比较字符串) 不要使用反射来更改背景 char[](因为您不知道是谁在使用该字符串)
添加回答
举报
