《Java虛拟機規範》試圖定義一種“Java記憶體模型(JMM)”來屏蔽各種硬體和作業系統的記憶體通路差異,以實作讓Java程式在各種平台下都能達到一緻的記憶體通路效果。
Java記憶體模型規定來所有的變量都存儲在主記憶體中,每條線程還有自己的工作記憶體,線程的工作記憶體中儲存了被該線程使用的變量的主記憶體副本,線程對變量的所有操作都必須在工作記憶體中進行,而不能直接讀寫主記憶體中的資料。
關于主記憶體與工作記憶體之間具體的互動協定,即一個變量如何從主記憶體拷貝到工作記憶體、如何從工作記憶體同步回主記憶體這一類的實作細節,Java記憶體模型中定義了以下8種操作來完成。