synchronized(string)
String是java中的一種特殊類型,String在jdk中創(chuàng)建后共享常量池,即使在jdk1.8之后實(shí)現(xiàn)了不同的功能,它的功能也是相似的。
利用這個(gè)特征,可以使用String作為同步鎖。例如,在更新用戶信息時(shí),可以使用用戶的名稱作為同步鎖,不同的用戶可以使用不同的鎖來提高并發(fā)性能。這個(gè)特征擴(kuò)展適當(dāng)?shù)膱鼍胺浅6唷?/p>

在Jvm中具有String常量池緩存的功能
String s1 = “a”;
String s2 = “a”;

System.out.println(s1 == s2);//true
字符串常量池中的字符串只有個(gè)一個(gè)“a”,所以此時(shí)鎖的是同一個(gè)對(duì)象。
只不過正因?yàn)镾tring的特殊性,java還包含了更多的與字符串相關(guān)的工具類,如StringBuffer、StringBuilder等。而且字符串映射的值是常量,但是String本身是可以new出來類似一個(gè)變量使用的。這些情況就會(huì)影響線程的同步了。
想要了解跟多關(guān)于Java培訓(xùn)課程內(nèi)容歡迎關(guān)注賦能網(wǎng)Java培訓(xùn),賦能網(wǎng)除了這些技術(shù)文章外還有免費(fèi)的高質(zhì)量Java培訓(xùn)課程視頻供廣大學(xué)員下載學(xué)習(xí)。
本文鏈接:
本文章“ynchronized(tring)_java培訓(xùn)”已幫助 285 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579