當我們做什麼時候的Java創建的字符串
String a=new String("mac");
String b=new String("mac");
if(b == a)
{
System.out.println("condition 1 is true");
}
if(b.equals(a))
{
System.out.println("condition 2 is true");
}
條件1失敗,條件2是真實的,因爲B和A是兩個不同的對象
但是,當我們做
String a="mac";
String b="mac";
if(b == a)
{
System.out.println("condition 1 is true");
}
if(b.equals(a))
{
System.out.println("condition 2 is true");
}
一個新對象
這兩個條件都是真的。爲什麼沒有爲第二種情況創建一個新的對象。如果java僅在我們使用new()
時創建一個新對象,那麼如果我們給這兩個字符串賦予不同的值,那麼java內部會發生什麼?
相關:http://stackoverflow.com/questions/2009228/strings-are-objects-in-java-so-why-dont-we-use-new-to-create-them和http:// stackoverflow .com/questions/3801343/what-is-string-in-java –
有多少重複項......讓我把它們計算在內...... –