1.jvm定義:java程序的運行環境
2.好處
- 一次編寫 處處運行
- 自動內存管理,垃圾回收功能
- 數組下標越界檢查
- 多態
3.jvm jre jdk的區別
4.學習路線
5.內存結構
- 程序計數器
- 虛擬機棧
- 本地方法棧
- 堆
- 方法區
6.程序計數器的作用、特點
記住下一條jvm指令執行的地址
*特點線程私有的,且不會存在內存溢出
7.虛擬機棧的定義及特點
- 每個線程運行時所需的內存,稱爲虛擬機棧
- 每個棧由多個棧幀組成,對應着每次方法調用時所佔用的內存
- 每個線程只能由一個活動棧幀,對應着當前正在執行的那個方法
8、堆的定義及特點
定義:通過new關鍵字,創建對象都會使用到堆內存
特點:
- 它是線程共享的,堆中對象都需要考慮線程安全的問題
- 有垃圾回收機制
9、方法區的定義
在方法區中,存儲了每個類的信息(包括類的名稱、方法信息、字段信息)、靜態變量、常量以及編譯器編譯後的代碼等。
10、運行時常量池
- 常量池,就是一張表,虛擬機指令根據這行常量表找到要執行的類名、方法名、參數類型、字面量等信息
- 運行時常量池,常量池是*.class文件中的,它的常量池信息就會放到運行時常量池,並把裏面的符號地址變爲真實地址
11、StringTable(串池)的特性
- 常量池中的字符串僅是符號,第一次用到時才變爲對象
- 利用串池的機制,才能避免重複創建字符串對象
- 字符串常量拼接的原理是StringBuilder
- 字符串常量拼接的原理是編譯期優化
- 可以使用intern方法,主動將串池中還沒有的字符串對象放入串池中(1.8中將這個字符串對象嘗試放入串池,如果有則並不會放入,如果沒有則放回串池,會把串池中的對象返回)
12、直接內存(操作系統內存)
定義:
-
常見於NIO操作時,用於數據緩衝區
-
分配回收成本較高,但讀寫性能高
-
不受jvm內存回收管理
***帥氣的遠遠啊***