[問題] String的intern()有何好處?

看板java作者 (鄉民)時間16年前 (2010/01/09 10:22), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/5 (看更多)
第一段code: String str1 = “12345”; String str2 = str1; 和這一段code: String str1 = “12345”; String str2 = “12345”.intern( ); 這兩段code,應該做的事情都一樣... 都是去string pool找一個內容和str1一模一樣的物件,然後讓str2指向該物件吧? 我的問題是: 我們分配物件給str2時,為何還需要intern( )呢? 直接做str2 = str1就好了呀... 反正不管做完上述那一段code 我們之後使用 "bool check_string = (str1 = = str2)" 這個指令 check_string 這個變數 包含的值一樣都是true.... intern究竟存在的目的為何呢? 麻煩請指導一下 謝謝賜教... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.5.159

01/09 10:49, , 1F
在 assign str2 時,你不見得會有 str1 的 reference 呀
01/09 10:49, 1F

01/09 11:04, , 2F
不好意思..我還是不太懂
01/09 11:04, 2F

01/09 11:06, , 3F
那個情況下 不會有str1的reference
01/09 11:06, 3F

01/09 11:08, , 4F
是指str2 = new String(str1)嗎?還是其他呢?
01/09 11:08, 4F

01/09 11:20, , 5F
考慮一下 String str2 = "12" + 345; 的情況
01/09 11:20, 5F

01/09 14:40, , 6F
我大概有點眉目了 謝謝你的指點
01/09 14:40, 6F
文章代碼(AID): #1BH-Y3A8 (java)
文章代碼(AID): #1BH-Y3A8 (java)