朋友們有沒有發(fā)現(xiàn)一個問題,看了網(wǎng)上的這么多文章,如果自己不去動手去寫一寫,去真正的總結(jié),那么用不了多久,就忘掉了這些知識點,本人實在是一個笨鳥,所以想去自己記錄一番,真正的去學(xué)習(xí)些知識,哈哈!
話不多說,今天就讓我們一起學(xué)習(xí)一些,常用的基礎(chǔ)知識吧!
一、String
String作為字符串常量,相信大家都不陌生,相比較StringBuffer和StringBuilder而言,它是不可變對象,因為String類使用的是字符數(shù)組保存字符串,如:private final char value[ ],因為有了final進行了修飾,所以String對象是不可變的。
對于線程安全而言,String作為字符串常量,String對象是不可變的,顯然它線程是安全的。
二、StringBuffer
StringBuffer繼承自AbstractStringBuilder類,而這個類是為了解決大量的拼接字符串時產(chǎn)生很多中間對象問題,它的本質(zhì)是一個線程安全的可變的字符序列,底層是可修改的char value[ ],它對調(diào)用的方法加入了synchronized,進行了同步,保證了線程安全的前提下,耗費了一些性能上的代價。
三、StringBuilder
StringBuilder同樣繼承自AbstractStringBuilder類,它和StringBuffer本質(zhì)上沒有什么太大的區(qū)別,區(qū)別就在于,它放棄了線程安全的部分,放棄了同步鎖,減少了對性能的開銷。
對于效率使用方面,個人才疏學(xué)淺,只能總結(jié)出大部分情況下,StringBuilder>StringBuffer>String
雖然寫的不多,但是這些都是笨鳥本人的一些理解,希望各位技術(shù)大佬和一同學(xué)習(xí)的朋友們,多多指導(dǎo),畢竟是本人的第一篇技術(shù)總結(jié)分享!感謝,感謝!