卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

<strike id="sqe8a"><menu id="sqe8a"></menu></strike>
<strike id="sqe8a"><input id="sqe8a"></input></strike>

java獲取字符串長度的函數(shù) JAVA中為什么String比StringBuffer的處理效率更高?

JAVA中為什么String比StringBuffer的處理效率更高?事實上,string和StringBuffer都用于Java中的字符串處理。當(dāng)然,這兩個類通常與StringBuilder進(jìn)行比較

JAVA中為什么String比StringBuffer的處理效率更高?

事實上,string和StringBuffer都用于Java中的字符串處理。當(dāng)然,這兩個類通常與StringBuilder進(jìn)行比較。

實際上,string、StringBuilder和StringBuffer都是基于字符數(shù)組實現(xiàn)的(jdk8是基于字節(jié)數(shù)組實現(xiàn)的)。但是這三者之間有什么相同點和不同點呢?

其中字符串類由final修改,因此其值是不可變的。當(dāng)然,你也會有疑問,不能用“”進(jìn)行字符串拼接操作,對嗎?我打印了那個值,它確實改變了。在這方面,我需要解釋一下,所謂的字符串拼接就是在生成新字符串之后,將新生成的字符串賦給原始變量。當(dāng)然,還將有一個操作來確定字符串常量池中是否已經(jīng)存在字符串值。但無論如何操作,最終的結(jié)果都是拼接后用新字符串替換舊字符串,或者重新賦值字符串變量。

StringBuffer和StringBuilder的值是可變的。如果只是在日常生活中使用,它們之間沒有太大區(qū)別。但是,在多線程環(huán)境中使用StringBuffer效率較低。因為StringBuffer的方法是由synchronized關(guān)鍵字修改的,也就是說,當(dāng)StringBuffer被多個線程共享時,會出現(xiàn)鎖爭用和等待問題,導(dǎo)致時間消耗增加。StringBuilder沒有限制,但它容易出現(xiàn)線程安全問題。

因此,行業(yè)使用習(xí)慣是在單線程中使用StringBuilder,在多線程中使用StringBuffer。