String、StringBuilder和StringBuffer

Stirng:安全

        String 是不可變的對象,在每次對 String 類型進行改變的時候其實都等同於生成了一個新的 String對象,而後將指針指向新的 String 對象,因此常常改變內容的字符串最好不要用 String ,由於每次生成對象都會對系統性能產生影響,特別當內存中無引用對象多了之後, JVM 的 GC 就會開始工做,那速度是必定會至關慢的。ide

StirngBuffer:性能

        每次更改都會對 StringBuffer 對象自己進行操做,而不是生成新的對象,再改變對象引用。因此在通常狀況下咱們推薦使用 StringBuffer ,特別是字符串對象常常改變的狀況下。ui

StringBuilder:線程

        StringBuilder 是 JDK5.0 中新增長的一個類,StringBuffer 線程安全的可變字符序列。相似於 String 的字符串緩衝區,但不能修改。與StringBuffer 類相比,一般應該優先使用 StringBuilder 類,由於它支持全部相同的操做,但因爲它不執行同步,因此速度更快。 可是若是將 StringBuilder 的實例用於多個線程是不安全的。須要這樣的同步,則建議使用 StringBuffer 。指針

基原本說都是在性能上都是 StringBuilder > StringBuffer > String。對象

相關文章
相關標籤/搜索