并發(fā)編程有3個(gè)源頭性問(wèn)題:緩存導(dǎo)致的可見(jiàn)性問(wèn)題,編譯優(yōu)化導(dǎo)致的有序性問(wèn)題,以及線程切換導(dǎo)致的原子性問(wèn)題。解決可見(jiàn)性問(wèn)題和有序性問(wèn)題的方法是按需禁...
為什么要有 Java內(nèi)存模型? 并發(fā)編程的3個(gè)源頭問(wèn)題分別是: 可見(jiàn)性,由緩存導(dǎo)致的可見(jiàn)性問(wèn)題 有序性,由編譯優(yōu)化導(dǎo)致的有序性問(wèn)題 原子性,由線...
操作系統(tǒng)使用信號(hào)量解決并發(fā)問(wèn)題,Java選擇使用管程(Monitor)解決并發(fā)問(wèn)題。信號(hào)量和管程是等價(jià)的,可以使用信號(hào)量實(shí)現(xiàn)管程,也可以使用管程...
HashMap 是一種 KV 形式的數(shù)據(jù)結(jié)構(gòu),允許有一個(gè) key 為 null,value 允許為 null。HashMap 的存儲(chǔ),使用的是哈...
fail-fast 快速失敗,是指在遍歷集合時(shí),檢查遍歷過(guò)程中集合的modCount是否改變,如果改變就會(huì)拋出java.util.Concurr...
將Array轉(zhuǎn)為L(zhǎng)ist: 使用 Arrays.asList(),轉(zhuǎn)化后的 List 不能 add(),否則會(huì)報(bào) java.lang.Unsup...
跟JVM內(nèi)存相關(guān)的幾個(gè)核心參數(shù)
新生代滿了會(huì)觸發(fā) Young GC,老年代滿了會(huì)觸發(fā) Old GC。GC時(shí)會(huì)回收對(duì)象,那么具體是什么樣的對(duì)象會(huì)被垃圾回收器回收呢? 可達(dá)性分析算...
我們都知道以 .java 結(jié)尾的 Java 源文件,經(jīng)過(guò)編譯之后會(huì)變成 .class 結(jié)尾的字節(jié)碼文件。JVM 通過(guò)類加載器來(lái)加載字節(jié)碼文件,然...