JVM java虛擬機-----內存

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內存回收管理

     							***帥氣的遠遠啊***
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章