1. 程式人生 > >學習筆記1:深入理解Java虛擬機器——JVM高階特性與最佳實踐_走進java_java記憶體區域與記憶體溢位異常

學習筆記1:深入理解Java虛擬機器——JVM高階特性與最佳實踐_走進java_java記憶體區域與記憶體溢位異常

第一部分:走進java

Java虛擬機器
程式碼在華章下載

jdk釋出了六個命令列工具和兩個視覺化故障處理工具。

推薦書籍
設計原本
領域特定語言

現在著名的Java虛擬機器
hotspot vm(預設)
jrockit vm
j9 vm

jdk
sun jdk
open jdk:是開源的(是sun公司宣佈開源之後有的)
oracle jdk是商用的(大部分跟openjdk是一樣的,只是有了一些商用的功能)

Java的下一個十年規劃
1.模組化(jdk9中實現)
2.混合語言
3.多核並行
4.豐富的語法
5.64位虛擬機器(這就是為什麼java記憶體限制在4G的主要原因)


第二部分 自動記憶體管理機制

第2章 java記憶體區域與記憶體溢位異常

2.1 執行時資料區域
在這裡插入圖片描述

Java虛擬機器執行時資料區
1.程式計數器。
2Java虛擬機器棧
3本地方法棧
4.Java堆:
作用:存放物件的例項,被所有執行緒所共享。

5.方法區:用於儲存已被虛擬機器加在的類資訊,常量,靜態變數,即時編譯器編譯後的程式碼資料等。(一般人們也把這部分歸入堆中,單嚴格來說,它有自己的學名)

6.執行時常量池:是方法區的一部分

7.直接記憶體:nio使用
在這裡插入圖片描述