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