許多人在Java處理字串應該都是使用String這個物件。
但是String事實上有一些小問題存在,那就是當你的字串若是時常會更改時,建議不要使用。
我會比較推薦你使用StringBuilder來代替String。
為什麼會這麼說呢? 你可以參考一下以下的程式碼。
這段程式碼做了什麼樣的事情呢,創建一個字串存入AB,在把CD加入到這個字串的後面。
你可能會認為他是做了這樣的事情。
把str這個物件裡面的值更改成ABCD,但是事實上卻不是這樣。
事實上他是做了這樣的事情。
String並不是在原本的物件裡面做修改,而是創一個新的物件,在把指針指過去,
原本的物件就留在記憶體,等GC去清除。
這樣看起來似乎有很大的問題沒錯吧,因此若是你的字串需要大量修改的話,建議不要使用String。
在這邊做一個小實驗試試看。
用String做一萬次字串相加,看看會花費多少的時間。
大概會花費1.5~2秒的時間,也就是1500~2000ms。
這時候我們試試看使用StringBuilder做一樣的事情要花多久。
答案是,只要大概1~2ms就可以了,因為他做這件事不會new一個新的物件出來,因此比較快。
String雖然好用,但是若是你的字串時常需要修改的話,就必須特別注意了。
沒有留言:
張貼留言