<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java 開發人員必須知道.. > 原文: [https://javabeginnerstutorial.com/core-java-tutorial/java-developers-must-know/](https://javabeginnerstutorial.com/core-java-tutorial/java-developers-must-know/) ## Java 虛擬機怎么運行? * 首先 jvm 在類中查找`main`方法。如果存在,它將從該處開始執行 * 在 Java 虛擬機內部,線程有兩種形式:**守護程序**和**非守護程序**。 守護程序線程通常是虛擬機本身使用的線程,例如執行**垃圾收集**的線程。 但是,該應用可以將其創建的任何線程標記為守護程序線程。 應用的初始線程(從`main()`開始的線程)是非守護程序線程。 * 只要任何非守護程序線程仍在運行,Java 應用就會繼續執行(虛擬機實例繼續運行)。 Java 應用的所有非守護程序線程都終止時,虛擬機實例將退出。 如果得到安全管理者的允許,則應用還可以通過調用`Runtime`或`System`類的`exit()`方法來使其自身滅亡。 ![](https://img.kancloud.cn/01/d9/01d95392104bdf25eb5956e30306707d.png) **Java 虛擬機的架構** * 所有的 JVM 都包含兩個組成部分 *類加載器子系統*:一種機制,用于加載具有完全限定名稱的類型(類和接口)。 *執行引擎*:一種機制,負責執行已加載類的方法中包含的指令。 * 當 Java 虛擬機運行程序時,它需要內存來存儲許多東西,包括字節碼,已加載的類文件中的信息,程序實例化的對象,方法的參數,返回值,局部變量以及中間的計算結果。 * 虛擬機的不同實現可能具有非常不同的內存限制。 一些實現可能需要大量內存才能工作,而其他實現可能很少。 一些實現可能能夠利用虛擬內存,而其他一些則不能。 運行時數據區規范的抽象性質有助于簡化在各種計算機和設備上實現 Java 虛擬機的過程。 * 不同的 Java 程序具有不同的 jvm 實例。 如果我執行一個類,則一個單獨的 jvm 實例將處理該類 * 當虛擬機加載類文件時,它會從類文件中包含的二進制數據中解析有關類型的信息。 它將類型信息放入方法區域,將程序實例化的所有對象放入堆。 * 隨著每個新線程的出現,它獲得了自己的 *pc 寄存器*(程序計數器)和 *Java 棧*。 如果線程正在執行 Java 方法(不是本機方法),則 pc 寄存器的值指示要執行的下一條指令。 線程的 Java 棧存儲該線程的 Java(非本機)方法調用狀態。 * Java 棧由*棧幀*(或*幀*)組成。 棧框架包含一個 Java 方法調用的狀態。 當線程調用方法時,Java 虛擬機將新框架推送到該線程的 Java 棧上。 該方法完成后,虛擬機將彈出并丟棄該方法的幀 * Java 虛擬機包含兩種類加載器:`java.lang.ClassLoader` bootstrap 類加載器,用戶定義的類加載器。 * 正在運行的程序的每個線程都有其自己的**程序計數器**寄存器或程序計數器,它們是在線程啟動時創建的。 pc 寄存器的大小為一個字,因此它既可以保存本機指針,也可以保存 returnAddress。 當線程執行 Java 方法時,pc 寄存器包含該線程正在執行的當前指令的地址。 “地址”可以是本機指針,也可以是方法字節碼開頭的偏移量。 如果線程正在執行本機方法,則 pc 寄存器的值未定義。 * 這里有兩個棧,Java 棧:由 JVM 維護,本機棧:取決于。 大家好,請評論我的帖子。 如果我的帖子有任何問題,請隨時進行糾正,謝謝。
                  <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>

                              哎呀哎呀视频在线观看