[問題] string問題
public class test02 {
public static void main(String args[])
{
String a = new String("abc");
String b = new String("abc");
String c = "abc";
String d = "abc";
String e = "def";
String f = "abcdef";
String g = c+e;
String h = (c+e).intern();
String i = new String("abc").intern();
System.out.println(a == b); // false
System.out.println(c == d); // true
System.out.println(f == g); // false
System.out.println(f == h); // true
}
}
這是一段在網路上看到關於string pool的範例
我想問的是: 1.第一個true是怎麼來的? 為什麼會指向同一個"abc"?(因為上面創造了兩個)
2.裡面的g是同時指向"abc"和"def"的位址嗎?
3.假設不看這支程式String a = new String("abc") 和 String a = "abc"
的不同在哪?是一個是製造兩個物件,另一個只有製造一個?
雖然有爬過文章但是還是不甚了解
拜託各位指教了!!謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.135.223
※ 編輯: TKforce 來自: 140.119.135.223 (01/16 23:58)
→
01/16 23:59, , 1F
01/16 23:59, 1F
→
01/17 00:30, , 2F
01/17 00:30, 2F
→
01/17 00:40, , 3F
01/17 00:40, 3F
推
01/17 10:35, , 4F
01/17 10:35, 4F
推
01/17 12:54, , 5F
01/17 12:54, 5F
推
01/17 15:42, , 6F
01/17 15:42, 6F
→
01/17 21:52, , 7F
01/17 21:52, 7F
→
01/17 23:17, , 8F
01/17 23:17, 8F
推
01/18 23:35, , 9F
01/18 23:35, 9F