String,StringBuilder,StringBuffer

一. String s = new String("A");會創(chuàng)建幾個對象。

如果只有這一句話,創(chuàng)建兩個對象,一個在堆,一個在字符串常量池,但是返回的是堆的對象。

如果字符串常量池已經(jīng)存在“A”,那么new創(chuàng)建一個對象,在堆中。

PS:String s2 = "SS";這句話只會在字符串常量池中創(chuàng)建。即創(chuàng)建一個對象。

二.String是否可以被繼承

不能,因為String類是這樣聲明的:public final class String extends Object。

主要看final關(guān)鍵字,final定義的類不可以被進(jìn)程,final定義的方法不可被重寫,final定義的變量不可以被修改。

三. StringBuilder和StringBuffer

StringBuilder不支持并發(fā)操作,線性不安全的,不適合多線程中使用。新引入的StringBuilder類不是線程安全的,但其在單線程中的性能比?StringBuffer高。

StringBuffer支持并發(fā)操作,線性安全的,適合多線程中使用。

StringBuffer中大量使用synchronized,效率較低。

四, 效率對比

StringBuilder>StringBuffer>String

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容