本篇內容介紹了“java的String、StringBuffer和StringBuilder有什么區別”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
大家都知道,String是不能被修改的,因為它是被final修飾的,除非產生新的對象,但是我們在業務中又有很多對字符串進行修改的操作,那么這個時候StringBuffer、StringBuilder應運而生,StringBuffer 和 StringBuilder 類的對象能夠被多次的修改,并且不產生新的未使用對象。StringBuilder
StringBuilder其實速度很快,甚至比StringBuffer要快上很多,但是他有一個致命的缺點,那就是這個方法不是線程安全的,由于StringBuilder相比較于StringBuffer有速度優勢,所以多數情況下建議使用StringBuilder,但在程序整體要求線程安全的情況下,我們必須使用StringBuffer。
實際上,對于StringBuffer,我作為開發這么多年,還真沒遇到過實際的使用場景,因為它的線程安全,僅僅只是保證JVM順利運行,并且不往下繼續拋異常。所以,我們一般情況下要保證線程的安全,需要用到的是鎖。
可能是因為出于不知道什么決定,在沒有StringBuilder之前,sun的大佬們選擇了讓StringBuffer是線程安全的。然后若干年后,JDK5時StringBuilder應運而生,也就是從這個時候開始,java開始火起來了。我想StringBuilder也為java甩掉運行速度慢做出了一定的貢獻。
總結起來很簡單,就下面這幾條:
1.String大小長度不可變,因為被final修飾。
2.StringBuffer 和 StringBuilder 長度可變。
3.StringBuffer 線程安全 StringBuilder 線程不安全。
4.StringBuilder 速度快。
5.一般業務情況下使用StringBuilder。
6.StringBuilderJDK1.5才出。
“java的String、StringBuffer和StringBuilder有什么區別”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。