String str1="JAVA";
String str2="JAVA";
String str3=new String("JAVA");
String str4=new String("JAVA").intern();
將創建2個對象。 str1
和str2
指相同的對象,因爲字符串文字池概念和str3
指向新的對象,因爲使用新的運營商,並通過str1
str4
指向相同的物點和str2
因爲intern()
方法檢查到串池串具有相同的值。在此過程中創建的字符串對象的總數?
str1=str2=str3=str4=null;
一個對象將有資格使用GC。這是通過String str3=new String("JAVA")
創建的對象。第一個String對象始終可以通過存儲在字符串文字池中的引用訪問。
我的解釋是否正確?
它們都設置爲null。不應該GC收集它們全部,因爲所有引用明確地設置爲'null'? – Maroun
哦..沒有注意到:)咖啡的時間。 – Maroun
我聽說實習字符串也是可收集的 - 它們永遠不會永久燙髮寶石 – dantuch