java 內存管理由JVM來管理java
一堆:ide
1存儲new出來的對象(包括實例變量)this
2垃圾:沒有任何引用所指向的對象,垃圾回收器(Gc)不定時到內存中去清掃垃圾, Gc的回收過程是透明的,不必定發現垃圾就馬上回收能夠調用System.gc()建議虛擬機盡 快 調度Gc來回收垃圾對象
3實例變量的生命週期:建立時存儲在堆中,對象被回收時一併被收回blog
4內存泄漏:再也不使用的內存尚未被及時的回收生命週期
建議:若對象再也不使用時應及時將其引用設置爲null內存
二棧:get
1存儲正在調用的方法中的全部局部變量(包括方法的參數)虛擬機
2調用調用方法時會爲該方法在棧中分配一塊對應的棧幀,棧幀中包含方法的局部變量(包括參數),當方法調用結束時,棧幀被清除,局部變量一併被清除it
3局部變量的生命週期:
調用方法時存儲在棧中,方法結束時與棧幀一併消失
三方法區:
1存儲.class字節碼文件(包括方法,靜態變量)
2方法只有一份,經過this來區分具體的訪問對象
幾張關於堆棧方法區內存的大體圖,適合基礎學者用於理解。