作者andy15281528 (阿狄)
看板java
標題[問題] string new的優點
時間Fri Feb 1 09:16:08 2019
最近開始學java
前陣子搞懂了string的記憶體配置
new和不new之間的差別
new的也推出intern機制減少記憶體消耗
甚至還有string buffer 和 builder的輔佐
一連串看下來,讓我覺得string不要用new宣告是最好的
也去爬過文看看到底new有什麼好處
可是依然疑問
想要請問一下各位大大
string new的優點跟哪裡真的需要new才會是比較好的嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.219.164
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1548983771.A.752.html
1F:→ ssccg: new String主要是為了別的data type轉成String,例如byte[]02/01 09:38
2F:→ ssccg: StringBuffer/StringBuilder是因為String是immutable,只要02/01 09:39
3F:→ ssccg: 多次操作後的最終結果,不需要中間結果時用的02/01 09:40
4F:→ ssccg: 就只是少new幾次,最終toString還是個new02/01 09:42
5F:→ ssccg: 這跟好壞無關,需要不存在的String物件就是得new02/01 09:42
6F:→ ssccg: 至於你說不new的大概是指"string",只是載入class時就已經02/01 09:44
7F:→ ssccg: 建立好並intern,主要是內容事先已確定,跟執行期才知道內02/01 09:46
8F:→ ssccg: 容所以不得不new是不同的,常數和變數的差別02/01 09:47
9F:→ ssccg: 除非會建立大量由變數產生、但內容相同的String,不然不用02/01 09:51
10F:→ ssccg: 去想intern02/01 09:51
11F:→ ssccg: ↑建立持續存在記憶體,如果用完就要GC也不用intern了02/01 09:54
原來如此,你這些回文我前後大概看了三次多,然後去複習一下型態轉換才徹底瞭解到,
真是太感謝你了
※ 編輯: andy15281528 (114.137.80.92), 02/02/2019 18:05:00
12F:→ y3k: 有個東西叫String Pool 可以去深入了解一下' 02/03 19:51
13F:推 OZND: 推 02/12 21:55
14F:推 Anchorites: 推實用 最近也剛學 02/24 00:32
15F:推 opopkc: 回文有大神,推 06/14 15:28