<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 功能強大 支持多語言、二開方便! 廣告
                這一節我們來說說構造函數在內存中是如何被加載的。 我們之前說過,構造函數只有創建對象時才會被調用并且只調用一次。那么在創建對象的過程中內存中的變化是什么樣的呢? 我們接著上一節的Person類,我們分析 ~~~ class Person { private String name; private int age; Person()//構造函數,分別為成員變量name和age賦固定的值 { name = "baby"; age = 1; System.out.println("person run"); } Person(String n)//構造函數,有一個初始name參數 { name = n; } Person(String n,int a) { name = n; age = a; } public void speak() { System.out.println(name+":"+age); } } ~~~ 我們用下面的兩行代碼來分析一下構造函數在內存中的加載過程 ~~~ class ConsDemo { public static void main(String[] args) { Person p = new Person("小強",10); p.speak(); } } ~~~ 對于上面的測試,我們分析它的運行過程: 1.main方法進棧內存,main方法中有一個Person類類型變量p; 2.new創建Person對象,在堆內存中創建空間(假如地址為0x0045),該空間中有兩個成員變量name和age; 3.對對象的兩個成員變量進行初始化,此時會自動選擇調用構造函數Person(String n,int a); 4.構造函數Person(String n,int a)進棧內存,并且有參數n="小強",a=0; 5.然后在堆內存中把參數n和a的數值初始化name和age變量,此時對象的初始化完成; 6.把地址0x0045賦給main方法中的變量p; 7.構造函數Person()出棧,釋放參數n和a; 8.執行p.speak()語句,調用Person類中的speak()方法,則speak方法進棧; 9.執行打印語句,跳出speak方法,speak方法出棧; 10.跳出main方法,main方法出棧,程序運行結束。 我們在上面通過對一個簡單的對象創建過程進行了分析,簡單的學習了構造函數在內存中的加載和運行過程,這里也就是突出了對象的初始化,如果類中沒有定義構造函數,那么我們在創建對象時會調用默認的構造函數,而當我們定義了構造函數,則會通過參數類型選擇不同的構造函數進行對象的初始化,而且我們知道對象都必須被初始化,初始化就會調用相應的構造函數,所以說,構造函數是必須會進棧內存的。
                  <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>

                              哎呀哎呀视频在线观看