java 基礎

  1. JVM

    JVM(Java虛擬機)是一個抽象機器。它是一個提供可以執行Java字節碼的運行時環境的規範。
    JVM可用於許多硬件和軟件平臺。JVM,JRE和JDK是平臺相關的,因爲每個OS的配置不同。 但是,Java是平臺無關的。

    JVM執行以下主要任務

  2. 加載代碼驗證代碼執行代碼提供運行時環境

  3. 2.JRE

  4. JRE是Java Runtime Environment的縮寫。它用於提供運行時環境。它是JVM的實現。它是實際存在的。它包含一組庫和JVM在運行時使用的其他文件。
    Sun Micro Systems以外的其他公司也積極發佈JVM的實施(實現)。

    3.JDK

    JDK是Java Development Kit的縮寫,它是實際上存在的。它包含JRE+開發工具。如下圖所示 -

  5. 4.編譯時會發生什麼?

  6. 在編譯時,java文件由Java Compiler編譯(它不與操作系統交互),並將java代碼轉換爲字節碼,如下圖中所示 -

    運行時會發生什麼?

    在運行時,執行以下步驟:

    類加載器(Classloader):是用於加載類文件的JVM的子系統。
    字節碼校驗器(Bytecode Verifier):檢查代碼片段中是否存在違反對象訪問權限的非法代碼。
    解釋器(Interpreter):讀取字節碼流然後執行指令。

什麼是JVM?

JVM(Java虛擬機)是:

  1. 指定Java虛擬機的工作的規範。 但實現提供程序是獨立的選擇算法。 其實現是由Sun和其他公司提供。

  2. 它的實現被稱爲JRE(Java運行時環境)。

  3. 運行時實例只要在命令提示符上編寫java命令來運行java類,就會創建JVM的實例。

JVM(Java虛擬機)能做什麼?

JVM執行以下操作:

  • 加載代碼
  • 驗證代碼
  • 執行代碼
  • 提供運行時環境

JVM提供了以下定義:

  • 內存區
  • 類文件格式
  • 寄存器集合
  • 垃圾收集堆
  • 致命錯誤報告等

JVM(Java虛擬機)內部體系結構

下面讓我們來了解JVM的內部架構。它包含類加載器,內存區域,執行引擎等。

1)類加載器

Classloader是JVM的一個子系統,用於加載類文件。

2)類(方法)區域

類(方法)區域存儲每個類結構,例如運行時常量池,字段和方法數據,方法的代碼。

3)堆

它是分配對象的運行時數據區。

4)堆棧
Java堆棧存儲幀。它保存局部變量和部分結果,並在方法調用和返回中起作用。
每個線程都有一個私有JVM堆棧,同時創建線程。每次調用方法時都會創建一個新的框架。 框架在其方法調用完成時被銷燬。

5)程序計數器寄存器

PC(程序計數器)寄存器。 它包含當前正在執行的Java虛擬機指令的地址。

6)本地方法堆棧

它包含應用程序中使用的所有本地方法。

7)執行引擎

執行引擎包含:

  1. 虛擬處理器
  2. 解釋器:讀取字節碼流,然後執行指令。
  3. 即時(JIT)編譯器:它用於提高性能,JIT編譯的同時有類似字節代碼部分的功能,從而減少編譯所需的時間。編譯器是指從Java虛擬機(JVM)的指令集到特定CPU的指令集的轉換器。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章