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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### JAVA虛擬機棧\(Java Virtual Machine Stacks\) 定義:Java虛擬機棧\(棧幀/針棧\)是線程私有的,它的生命周期與線程相同 注意:Java棧中的數據是線程私有的,一個線程是無法訪問另一個線程的Java棧的數據。這也就是為什么多線程編程時,兩個相同線程執行同一方法時,對方法內的局部變量是不需要數據同步的原因 #### 特性 * 虛擬機棧描述的是JAVA方法執行的內存模型; * 每個方法執行時都會創建一個棧幀\(Stack Frame\); * 每個方法從調用到執行完成的過程,對應著一個棧幀在虛擬機棧中入棧到出棧的過程; * 后進先出\(LIFO\)棧 * 線程私有; #### 存儲內容 * 局部變量表\(Local Variables\):以變量槽\(Slot\)為單位,存有this引用,方法參數,定義的局部變量;字節碼指令使用從0開始索引來使用其中的數據,而0Slot 都默認為當前方法所屬的實例的引用即this;分配多大的局部變量空間在編譯期間已經確定;int,float,reference,returnAddress占一個Slot;byte,short,char會被轉成int;long,double占兩個連續Slot * 動態鏈接\(Dynamic Linking\):指向運行時常量池中棧幀所屬方法的引用,用來支持方法調用中的動態連接。常量池的方法的符號引用,一部分在類加載的時候轉化為直接引用,被稱為靜態解析。而動態連接指的是在每一次運行期間轉化為直接引用 * 操作數棧\(Operand Stack\):以變量槽\(Slot為單位\)字節碼指令從操作數棧彈出數據,執行計算,再把結果壓入操作數棧,操作數棧的深度在編譯期已經決定,在方法的 Code 屬性的 max\_stacks 數據項中 * 方法出口\(方法返回地址:Return Address\):返回地址(Return Address),正常返回時PC計數器的值作為返回地址保存;異常返回時通過異常處理表獲得返回地址,棧幀一般不會保存這部分信息 * 額外附加信息 #### 動態鏈接 **動態鏈接:**一個指向運行時常量池中該棧幀所屬方法的引用,包含這個引用的目的就是為了支持當前方法的代碼能夠實現動態鏈接 #### returnAddress ![](https://img.kancloud.cn/2c/e1/2ce198dee6221ae824049b1f94fc0a60_843x120.png) #### Exception * StackOverflowError:如果線程請求的棧深度大于虛擬機所允許的深度,拋出StackOverflowError異常; * OutOfMemoryError:如果虛擬機棧動態擴展時無法申請到足夠的內存,拋出OutOfMemoryError異常; ***** 【知識總結】 * HotSpot不區分虛擬機棧和本地方法棧 * HotSpot的-Xoss\(設置本地方法棧大小\)參數實際無效,棧容量只由-Xss參數設置
                  <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>

                              哎呀哎呀视频在线观看