深入理解java虛擬機器 筆記一 ---自動記憶體管理機制

君君的城堡U發表於2016-07-23

1   物件建立在併發情況下不是執行緒安全的

解決方案  1 對分配記憶體空間的操作進行同步處理  2 把記憶體分配的操作按照執行緒劃分在不同空間上

2   物件建立的過程

檢查物件是否載入------> 為物件分配記憶體空間--->將記憶體空間置零---->物件頭進行設定---->init方法執行

3  物件的記憶體分佈    物件頭 例項資料 對齊補充

4   物件的訪問定位

棧上的reference定位、訪問堆中的物件的具體位置主要要兩種方法:1控制程式碼  2直接指標

java堆異常

package test;

import java.util.List;
import java.util.ArrayList;

public class Hello {
	static class HeapObj{}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<HeapObj> list=new ArrayList<HeapObj>();
		while(true){
			list.add(new HeapObj());
		}
	}
}
堆中不斷建立物件 達到堆得最大容量限制之後



相關文章