String、StringBuilder和StringBuffer
Stirng:
??? ??? String 是不可變的對象,在每次對 String 類型進行改變的時候其實都等同于生成了一個新的 String對象,然后將指針指向新的 String 對象,所以經常改變內容的字符串最好不要用 String ,因為每次生成對象都會對系統性能產生影響,特別當內存中無引用對象多了以后, JVM 的 GC 就會開始工作,那速度是一定會相當慢的。
StirngBuffer:
??????? 每次更改都會對 StringBuffer 對象本身進行操作,而不是生成新的對象,再改變對象引用。所以在一般情況下我們推薦使用 StringBuffer ,特別是字符串對象經常改變的情況下。
StringBuilder:
??????? StringBuilder 是 JDK5.0 中新增加的一個類,StringBuffer 線程安全的可變字符序列。類似于 String 的字符串緩沖區,但不能修改。與StringBuffer 類相比,通常應該優先使用 StringBuilder 類,因為它支持所有相同的操作,但由于它不執行同步,所以速度更快。 但是如果將 StringBuilder 的實例用于多個線程是不安全的。需要這樣的同步,則建議使用 StringBuffer 。
基本來說都是在性能上都是 StringBuilder > StringBuffer > String。
轉載于:https://blog.51cto.com/hurly/986929
總結
以上是生活随笔為你收集整理的String、StringBuilder和StringBuffer的全部內容,希望文章能夠幫你解決所遇到的問題。