[問題] == 和 equals

看板java作者 (hi)時間15年前 (2009/02/24 15:20), 編輯推噓6(602)
留言8則, 5人參與, 最新討論串1/1
初學者問題 public class EqualsTest{ public static void main(String[] args){ String s1 = "abc"; String s2 = s1; String s5 = "abc"; } 為什麼S1==S5會返回true呢? 他們的memory address不是不同? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.174.132.40

02/24 17:28, , 1F

02/24 18:17, , 2F
==是用來比較位址(address), 而s1跟s5的位址都是指向String
02/24 18:17, 2F

02/24 18:18, , 3F
pool的"abc", 所以才retrun true
02/24 18:18, 3F

02/24 20:49, , 4F
對String來說(雖然String也是一種物件)
02/24 20:49, 4F

02/24 20:52, , 5F
JVM使用的是String constant pool
02/24 20:52, 5F

02/25 16:44, , 6F
能解釋一下String constant pool的概念嗎
02/25 16:44, 6F

02/25 23:08, , 7F
02/25 23:08, 7F

02/26 00:09, , 8F
感謝^^
02/26 00:09, 8F
文章代碼(AID): #19ev_ByX (java)