<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java 虛擬機基礎 > 原文: [https://javabeginnerstutorial.com/core-java-tutorial/java-virtual-machine-basics/](https://javabeginnerstutorial.com/core-java-tutorial/java-virtual-machine-basics/) JVM 是 Java 虛擬機的縮寫形式。 它是一個 Java 字節碼處理引擎,它將 Java 字節碼轉換為機器語言,然后由機器(計算機)執行。 Java 字節碼是 Java 與必須在其上執行程序的機器之間的中間語言,并且當 JVM 將 Java 字節碼處理為機器語言時,可以執行此執行。 **JVM 簡介** 讓我們用簡單的詞來理解 Java 字節碼,JVM 和 Machine 的概念。 創建 Java 程序時,將生成擴展名為.java 的文件。 該文件可能包含幾個屬性,這些屬性包括但不限于類,方法,對象等。 然后,使用 Java 編譯器編譯該.java 文件,該編譯器將生成`.class`文件(也稱為 Java 字節碼)。 JVM 讀取此`.class`文件,理解其代碼,將代碼解釋為機器語言,然后執行該文件。 **JVM 平臺獨立嗎?** Java 由于具有 JVM 而與平臺無關,但是 JVM 與平臺有關。 必須在其上執行 Java 代碼的計算機必須安裝了 JVM。 根據必須在其上執行 Java 字節代碼的機器,JVM 解釋`.class`文件并生成另一種機器語言,該語言僅對該機器可以理解。 不同的計算機可能具有不同的操作系統,例如 Windows,Mac,Unix 或 Linux。 如果沒有 JVM,這些操作系統將無法解釋 Java 字節碼,因為操作系統只能理解機器語言。 JVM 將 Java 字節碼轉換為機器語言,并使操作系統可以理解以執行該代碼。 這意味著 Java 可以在任何計算機上運行,??但是它需要在該計算機上安裝 JVM。 **JVM 的組件** 在解釋和執行 Java 字節碼時,JVM 使用了幾個組件,例如棧,寄存器,垃圾收集器等。 讓我們看一下它的一些組成部分: * **棧**:它是方法參數和局部變量的倉庫。 可以在指向寄存器不同部分的寄存器的幫助下對其進行操作。 * **寄存器**:JVM 中有許多寄存器,例如 Vars,Frame,Program Counter 和 OpTop。 Vars 寄存器指向當前方法正在使用的局部變量。 框架寄存器指向執行環境,這是用于棧的環境。 Optop 指向操作數棧,在其中執行字節碼指令。 程序計數器寄存器指向保存字節碼的“方法”區域。 * **方法區域**:它是 Java 字節碼的占位符。 該區域在所有線程之間共享,因此可以確保同步。 * **垃圾收集器**:它是 JVM 的組件,用于存儲實際的 Java 對象。 請注意,Java 對象的引用存儲在棧中,而實際對象存儲在垃圾收集器中。 Java 使用垃圾回收來釋放分配給不同對象的內存,這與 C/C++ 不同,在 C/C++ 中,運算符用于釋放內存。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看