<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            java語言

            Java不可變類型的詳解

            時間:2025-06-05 07:17:16 java語言 我要投稿
            • 相關推薦

            Java不可變類型的詳解

              在Java語言中都有哪些不可變類型呢?下面小編為大家介紹了Java不可變類型,希望能幫到大家!

              我們先看下面一個例子:

              復制代碼 代碼如下:

              import java.math.BigInteger;

              public class BigProblem {

              public static void main(String[ ] args) {

              BigInteger fiveThousand = new BigInteger("5000");

              BigInteger fiftyThousand = new BigInteger("50000");

              BigInteger fiveHundredThousand = new BigInteger("500000");

              BigInteger total = BigInteger.ZERO;

              total.add(fiveThousand);

              total.add(fiftyThousand);

              total.add(fiveHundredThousand);

              System.out.println(total);

              }

              }

              你可能會認為這個程序會打印出555000。畢竟,它將total設置為用BigInteger表示的0,然后將5,000、50,000和500,000加到了這個變量上。如果你運行該程序,你就會發現它打印的不是555000,而是0。很明顯,所有這些加法對total沒有產生任何影響。

              對此有一個很好理由可以解釋:BigInteger實例是不可變的。String、BigDecimal以及包裝器類型:Integer、Long、Short、Byte、Character、Boolean、Float和Double也是如此,你不能修改它們的值。我們不能修改現有實例的值,對這些類型的操作將返回新的實例。起先,不可變類型看起來可能很不自然,但是它們具有很多勝過與其向對應的可變類型的優勢。不可變類型更容易設計、實現和使用;它們出錯的可能性更小,并且更加安全[EJ Item 13]。

              為了在一個包含對不可變對象引用的變量上執行計算,我們需要將計算的結果賦值給該變量。這樣做就會產生下面的程序,它將打印出我們所期望的555000:

              復制代碼 代碼如下:

              import java.math.BigInteger;

              public class BigProblem {

              public static void main(String[] args) {

              BigInteger fiveThousand = new BigInteger("5000");

              BigInteger fiftyThousand = new BigInteger("50000");

              BigInteger fiveHundredThousand = new BigInteger("500000");

              BigInteger total = BigInteger.ZERO;

              total = total.add(fiveThousand);

              total = total.add(fiftyThousand);

              total = total.add(fiveHundredThousand);

              System.out.println(total);

              }

              }

            【Java不可變類型的詳解】相關文章:

            詳解Java枚舉類型enum及其使用10-07

            Java基本數據類型詳解08-20

            Java如何創建不可變類08-01

            Java 變量類型10-01

            Java中的String為什么是不可變的07-10

            Java 變量類型介紹10-17

            java的數據類型09-30

            Java數據類型09-19

            java list的用法詳解08-24

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院