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