2015-10-12 178 views
2

我嘗試了一些東西象下面這樣:字符串池對象創建混亂

String s1="test5"; 
String s2="test"+5; 
String s3="test"+s1.length(); 
System.out.println("s1==s2 "+(s1==s2)+" s2==s3 "+(s2==s3)+" s1==s3 "+ (s1==s3)); 

輸出是:

s1==s2true

s2==s3false

s1==s3false

爲什麼s2s1不等於s3?爲什麼要爲s3生成新的參考?

+0

謝謝@piotrwolkowski –

回答

0

這裏的String s2總是恆定值test5。但在s3中,值取決於String s1。如果s1的長度發生變化,那麼它也會發生變化,因此它是動態的