国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

java中stringbuffer線程安全分析實(shí)例詳解

瀏覽:3日期:2022-08-18 10:29:03

在對(duì)于一些類作用于線程時(shí),安全系數(shù)高的線程更推薦大家使用,在盡可能的程度上降低程序出錯(cuò)的可能性。對(duì)于本篇所要提到的StringBuffer而言,在其緩沖區(qū)中有多個(gè)線程的存在,我們?cè)诓樵兤鋬?nèi)部方法時(shí)發(fā)現(xiàn)了鎖的存在。現(xiàn)在我們就StringBuffer線程、鎖的應(yīng)用、線程安全分析逐步帶來介紹。

1.StringBuffer線程說明

Java.lang.StringBuffer線程安全的可變字符序列。一個(gè)類似于String的字符串緩沖區(qū),但不能修改。雖然在任意時(shí)間點(diǎn)上它都包含某種特定的字符序列,但通過某些方法調(diào)用可以改變?cè)撔蛄械拈L度和內(nèi)容。

可將字符串緩沖區(qū)安全地用于多個(gè)線程。可以在必要時(shí)對(duì)這些方法進(jìn)行同步,因此任意特定實(shí)例上的所有操作就好像是以串行順序發(fā)生的,該順序與所涉及的每個(gè)線程進(jìn)行的方法調(diào)用順序一致。

2.synchronized鎖的應(yīng)用方式

(1)修飾實(shí)例方法,對(duì)當(dāng)前實(shí)例加鎖

public synchronized StringBuffer append(int i) { toStringCache = null; super.append(i); return this; }

(2)修飾靜態(tài)方法,對(duì)當(dāng)前類對(duì)象加鎖

public static synchronized void test(){ i++; }

(3)修飾代碼塊,對(duì)指定對(duì)象加鎖

public boolean contentEquals(CharSequence cs) { // Argument is a StringBuffer, StringBuilder synchronized(cs) { return nonSyncContentEquals((AbstractStringBuilder)cs); } }3.線程安全分析

StringBuffer buffer= new StringBuffer(); buffer.append('d');然后進(jìn)入appen里面看看@Override public synchronized StringBuffer append(String str) { toStringCache = null; super.append(str); return this; }

看到synchronized,在方法上面,說明是有線程安全的。

關(guān)于stringbuffer基礎(chǔ)知識(shí)點(diǎn)擴(kuò)展:

StringBuffer

當(dāng)對(duì)字符串進(jìn)行修改的時(shí)候,需要使用 StringBuffer 和 StringBuilder 類。

和 String 類不同的是,StringBuffer 和 StringBuilder 類的對(duì)象能夠被多次的修改,并且不產(chǎn)生新的未使用對(duì)象。

StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問)。

由于 StringBuilder 相較于 StringBuffer 有速度優(yōu)勢(shì),所以多數(shù)情況下建議使用 StringBuilder 類。然而在應(yīng)用程序要求線

程安全的情況下,則必須使用 StringBuffer 類

字符串 的內(nèi)容一旦創(chuàng)建,則不允許改變,如果一旦改變,則會(huì)創(chuàng)建一個(gè)新的字符串對(duì)象。

字符串的內(nèi)容一般不會(huì)隨意的修改,因?yàn)槊啃薷囊淮味紩?huì)創(chuàng)建一個(gè)新的字符串對(duì)象。

如果需要修改字符串的內(nèi)容:建議使用字符串緩沖區(qū)類。

StringBuffer(字符串緩沖區(qū)類): 存儲(chǔ)字符的集合容器。

筆試題: 使用Stringbuffer無參的構(gòu)造方法默認(rèn)的初始化容量是多少? 當(dāng)容量不夠用時(shí)會(huì)自動(dòng)增長多少?

StringBuffer的底層是維護(hù)了一個(gè)字符數(shù)組,存儲(chǔ)字符的時(shí)候?qū)嶋H上是往該字符數(shù)組中存儲(chǔ) 的,

而字符數(shù)組的初始化容量是16, 當(dāng)容量不夠使用時(shí),自動(dòng)增長1倍。

到此這篇關(guān)于java中stringbuffer線程安全分析實(shí)例詳解的文章就介紹到這了,更多相關(guān)java中stringbuffer線程安全分析內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 欧美xxxx4khd超高清 | 欧美另类在线观看 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美在线 | 国产a级三级三级三级中国 国产a级特黄的片子视频 | 久久精品视频一区二区三区 | 另类二区三四 | 国产网站黄色 | 欧美一级成人 | 美国毛片网站 | 亚洲综合一二三区 | 午夜影院免费体验 | 色噜噜狠狠大色综合 | xo欧美性另类 | 国产在线精品一区二区高清不卡 | 一级国产视频 | 亚洲久久网 | 欧美性另类69xxxx极品 | 国产真实乱子伦精品视 | 欧美日韩无 | 亚洲精品久久久久综合中文字幕 | 亚洲 欧美 国产 日韩 制服 bt | 2022国产精品手机在线观看 | 91成人精品视频 | 国产精品久久久久久久久久久威 | 91成人网| 久久久久久全国免费观看 | 亚洲成av人片在线观看无码 | 亚洲人成网站在线观看播放 | 九九视频在线观看视频6偷拍 | 日韩不卡一二三区 | 欧美在线视频不卡 | 亚洲欧美性视频 | 日本三级在线观看中文字 | 欧美视频一区二区在线观看 | 三级久久| 久草精品免费 | 欧美成人免费 | 免费特黄一级欧美大片 | 欧美日韩色 | 香蕉tv亚洲专区在线观看 | 欧美成人精品一区二区 |