<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調用方法的參數傳遞 1. 如果形參是[基礎數據類型](Java%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B.md),實參向形參傳遞時,就是值傳遞。在調用方法棧幀內申請變量,存的是實參的值。 2. 如果形參是對象數據類型,實參向形參傳遞是,則是將形參內存的堆內對象的引用地址復制給形參。實際上還是值傳遞,只是值指的是對象的引用地址。 ## 原理 ***Java在方法傳遞參數時,是將變量復制一份,然后傳入方法體內執行。*** ## 例子 ### int類型是值傳遞 ~~~ System.out.println("--------int start----------"); // int為基本類型,是值傳遞,value還是等于100 int value = 100; System.out.println("value address:"+VM.current().addressOf(value)); changeNum(value); System.out.println("value:"+value); System.out.println("value address:"+VM.current().addressOf(value)); System.out.println("--------int end----------"); ~~~ ~~~ private static void changeNum(int a){ System.out.println("method value address before:"+VM.current().addressOf(a)); a = 100; System.out.println("method value address after:"+VM.current().addressOf(a)); } ~~~ 輸出: ``` --------int start---------- value address:32570546328 method value address before:32570546328 method value address after:32570544744 value:100 value address:32570546328 --------int end---------- ``` ### 對象類型是引用傳遞 ~~~ System.out.println("--------A.class start----------"); A a = new A(12,"123"); System.out.println("A.class address:"+VM.current().addressOf(a)); changeA(a); System.out.println("A.class value:"+a); System.out.println("A.class address:"+VM.current().addressOf(a)); System.out.println("--------A.class end----------"); ~~~ ~~~ static class A{ public int age; public String name; public A(int age, String name) { this.age = age; this.name = name; } @Override public String toString() { return "A{" + "age=" + age + ", name='" + name + '\'' + '}'; } } ~~~ ~~~ private static void changeA(A a){ System.out.println("method A.class address before:"+VM.current().addressOf(a)); a.age = 1; a.name = "xxx"; System.out.println("method A.class address after:"+VM.current().addressOf(a)); } ~~~ 輸出: ``` --------A.class start---------- A.class address:32586262016 method A.class address before:32586262016 method A.class address after:32586262016 A.class value:A{age=1, name='xxx'} A.class address:32586262016 --------A.class end---------- ```
                  <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>

                              哎呀哎呀视频在线观看