Jvm中內存分爲兩種:一種是棧內存,一種是堆內存。
棧內存:存放對象,函數中基本類型的變量和對象的引用變量、靜態類方法;特點:存在棧中的數據可以共享。
堆內存:存放對象,用來存放由new創建的對象和數組;特點:由Java虛擬機的自動垃圾回收器(GC)來管理。
Java 內存模型 ( java memory model ):根據Java Language Specification中的說明,jvm系統中存在一個主內存(Main Memory或Java Heap Memory),Java中所有對象成員變量都儲存在主存中,對於所有線程都是共享的。每條線程都有自己的工作內存(Working Memory),工作內存中保存的是主存中某些對象成員變量的拷貝,線程對所有對象成員變量的操作都是在工作內存中進行,線程之間無法相互直接訪問,變量傳遞均需要通過主存完成。