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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## **數據類型** Java虛擬機中,數據類型可以分為兩類:**基本類型**和**引用類型**。 * **基本類型** 基本類型的變量保存原始值,他代表的值就是數值本身。 包括:byte,short,int,long,char,float,double,boolean,returnAddress * **引用類型** 引用類型的變量保存的是引用對象的地址。 包括:**類類型**,**接口類型**和**數組** ## **內存結構** JVM 內存分配結構對于不同的JDK版本有不同的結構類型,下圖 ![](https://img.kancloud.cn/a8/8b/a88baa83c4dd59df5ee096882452ab5c_1033x497.jpg) ![](https://img.kancloud.cn/23/01/23014c39a2c56bdd53d32fdf8046756f_1037x495.jpg) ![](https://img.kancloud.cn/48/9d/489dd4da84b2e9f6cd717659cd695542_1033x490.jpg) 觀察上圖發現,JVM內存結構主要包括 * 堆 * 虛擬機棧 * 本地方法棧 * 方法區(JDK7之后版本就去除了) * 程序計數器 ## **堆** java堆是java虛擬機所管理的內存中最大的一塊,該內存區域的唯一目的就是存放對象實例。JDK7后,字符串常量池從永久代中剝離出來,存放在堆中。 堆被劃分成兩個不同的區域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被劃分為三個區域:Eden、From Survivor、To Survivor。 ![](https://img.kancloud.cn/1d/38/1d38f608fc262a5f2c8a4aad60d1d88d_802x274.jpg) ## **虛擬機棧** 虛擬機棧描述的是Java方法執行的內存模型:每個方法在執行的同時都會創建一個棧幀(Stack Frame)用于存儲局部變量表、操作數棧、動態鏈接、方法出口等信息。 ![](https://img.kancloud.cn/2e/58/2e58ac317ab2fb59cccf2663d7557204_594x572.jpg) * **局部變量表** 用于存放**方法參數**和**方法內部定義的局部變量** * **操作棧** 用于存放計算操作所需的值以及結果值 * **動態鏈接** 每個棧幀都包含一個指向運行時常量池中該棧幀所屬方法的引用,持有這個引用是為了支持方法調用過程中的動態連接 * **返回地址** 用于保存方法執行完成后返回的地址 > 棧是運行時的單位,而堆是存儲的單位;棧主要解決程序如何處理數據,堆解決的是數據存儲的問題,即數據怎么放、放在哪兒。 ## **本地方法棧** 本地方法棧與虛擬機棧所發揮作用非常相似,它們之間的區別不過是虛擬機棧為虛擬機執行Java方法服務,而本地方法棧則為虛擬機使用到的native方法服務 ## **程序計數器** 程序計數器是一塊較小的內存空間,它可以看作是當前線程所執行的字節碼的行號指示器。 ## **方法區** 它用于存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯后的代碼等數據。 ## **常量池** 常量池中主要存放兩類數據,一是字面量、二是符號引用,JDK6常量池位于方法區中,JDK7之后常量池存放在堆中。 * **字面量**:比如String類型的字符串值或者定義為final類型的常量的值 * **符號引用**: 1. 類或接口的全限定名(包括他的父類和所實現的接口) 2. 變量或方法的名稱 3. 方法的描述信息(參數個數、參數類型、方法返回類型等等) 4. 變量的描述信息(變量的返回值)
                  <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>

                              哎呀哎呀视频在线观看