1、java一次編譯,到處執(zhí)行----跨平臺(tái)
創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為烏魯木齊企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,烏魯木齊網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。2、gc
3、jre和jdk 區(qū)別:
jre(java runtime environment)java運(yùn)行環(huán)境,包含jvm的client,類庫(rt.jar:常用的集合、io、math、lang等都在rt.jar包內(nèi))
jdk(java development kit)java開發(fā)工具,包含jre(含jvm的client和server)及編譯器(javac)、診斷工具(jconsole.exe等)
4、java基礎(chǔ)類庫:(java開頭)
java.lang(exception/string/stringbuffer/Integer等封裝類/math/annotion)
java.util(concurrent/regex正則表達(dá)式/collection/日期date calendar)
參考 https://blog.csdn.net/basycia/article/details/50769838
5、java常用第三方類庫:(javax開頭)
javax.swing、javax.naming
6、cas原理
java.util.concurrent包下的類都使用的是cas原理實(shí)現(xiàn)并發(fā),例如 automicInteger、concurrentHashMap
主存A,線程緩存數(shù)據(jù)B,更新值C,只有當(dāng)B=A時(shí),才會(huì)將 C賦值給A。
7、并發(fā)特性,可用syn、lock方式實(shí)現(xiàn)
原子性
有序性:jvm執(zhí)行java代碼時(shí)在保證不影響運(yùn)行結(jié)果情況下會(huì)進(jìn)行指令重排,有序性是避免指令重排。
內(nèi)存可見
8、volatile關(guān)鍵字
可保證內(nèi)存可見:線程A修改后立即將數(shù)據(jù)寫入主內(nèi)存。
有序性:修飾的關(guān)鍵字不被指令重排。保證在執(zhí)行關(guān)鍵字相關(guān)操作時(shí),之前的代碼已經(jīng)執(zhí)行,之后的代碼還未執(zhí)行,但不能保證關(guān)鍵字之前和之后代碼的順序性。
不能保證原子性。
volatile一個(gè)典型的應(yīng)用場景是 單例模式
class Singleton{ private volatile static Singleton instance = null; private Singleton() { } public static Singleton getInstance() { if(instance==null) { synchronized (Singleton.class) { if(instance==null) instance = new Singleton(); } } return instance; } }為什么單例模式需要使用volatile修飾?
主要在于instance = new Singleton()這句,這并非是一個(gè)原子操作,事實(shí)上在 JVM 中這句話大概做了下面 3 件事情:
1.給 instance 分配內(nèi)存
2.調(diào)用 Singleton 的構(gòu)造函數(shù)來初始化成員變量
3.將instance對(duì)象指向分配的內(nèi)存空間(執(zhí)行完這步 instance 就為非 null 了)。
但是在 JVM 的即時(shí)編譯器中存在指令重排序的優(yōu)化。也就是說上面的第二步和第三步的順序是不能保證的,最終的執(zhí)行順序可能是 1-2-3 也可能是 1-3-2。如果是后者,則在 3 執(zhí)行完畢、2 未執(zhí)行之前,被線程二搶占了,這時(shí) instance 已經(jīng)是非 null 了(但卻沒有初始化),所以線程二會(huì)直接返回 instance,然后使用,然后順理成章地報(bào)錯(cuò)。
參考:
你真的了解volatile關(guān)鍵字嗎?
深入淺出CAS
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。