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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## [字符串的不可變](https://lingcoder.gitee.io/onjava8/#/book/18-Strings?id=%e5%ad%97%e7%ac%a6%e4%b8%b2%e7%9a%84%e4%b8%8d%e5%8f%af%e5%8f%98) `String`對象是不可變的。查看 JDK 文檔你就會發現,`String`類中每一個看起來會修改`String`值的方法,實際上都是創建了一個全新的`String`對象,以包含修改后的字符串內容。而最初的`String`對象則絲毫未動。 看看下面的代碼: ~~~ // strings/Immutable.java public class Immutable { public static String upcase(String s) { return s.toUpperCase(); } public static void main(String[] args) { String q = "howdy"; System.out.println(q); // howdy String qq = upcase(q); System.out.println(qq); // HOWDY System.out.println(q); // howdy } } /* Output: howdy HOWDY howdy */ ~~~ 當把`q`傳遞給`upcase()`方法時,實際傳遞的是引用的一個拷貝。其實,每當把 String 對象作為方法的參數時,都會復制一份引用,而該引用所指向的對象其實一直待在單一的物理位置上,從未動過。 回到`upcase()`的定義,傳入其中的引用有了名字`s`,只有`upcase()`運行的時候,局部引用`s`才存在。一旦`upcase()`運行結束,`s`就消失了。當然了,`upcase()`的返回值,其實是最終結果的引用。這足以說明,`upcase()`返回的引用已經指向了一個新的對象,而`q`仍然在原來的位置。 `String`的這種行為正是我們想要的。例如: ~~~ String s = "asdf"; String x = Immutable.upcase(s); ~~~ 難道你真的希望`upcase()`方法改變其參數嗎?對于一個方法而言,參數是為該方法提供信息的,而不是想讓該方法改變自己的。在閱讀這段代碼時,讀者自然會有這樣的感覺。這一點很重要,正是有了這種保障,才使得代碼易于編寫和閱讀。
                  <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>

                              哎呀哎呀视频在线观看