jvm-學習筆記

一、Java對內存空間的劃分:五部分

  • 方法區
  • 本地方法區
  • 寄存器

二、棧內存

  1. 存儲都是局部變量,只要是在方法中定義的變量都是局部變量;
  2. 每個線程包含一個棧區,棧中只保存基礎數據類型的對象和自定義對象的引用(不是對象);
  3. 每個棧中的數據(原始類型和對象引用)都是私有的,其他棧不能訪問;
  4. 棧分爲3個部分:基本類型變量區、執行環境上下文、操作指令區(存放操作指令)。
  5. 一旦變量的生命週期結束,該變量就被釋放

三、堆內存

  1. 存儲都是實體(對象),凡事new創建的都在堆裏面;
  2. 存儲的全部是對象,每個對象都包含一個與之對應的class的信息。(class的目的是得到操作指令);
  3. 每一個實體都有一個首地址值。
  4. 堆內存中的變量都有默認的初始化值,不同類型不一樣 char-‘\u0000’。
  5. 當實體不再使用時,就會被垃圾回收機制處理。

四、方法區:

  1. 又叫靜態區,跟堆一樣,被所有的線程共享。方法區包含所有的class和static變量。
  2. 方法區中包含的都是在整個程序中永遠唯一的元素,如class,static變量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章