亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語言

Java不可變類型的詳解

時(shí)間:2024-09-10 03:47:03 java語言 我要投稿
  • 相關(guān)推薦

Java不可變類型的詳解

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

  我們先看下面一個(gè)例子:

  復(fù)制代碼 代碼如下:

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

  }

  }

  你可能會(huì)認(rèn)為這個(gè)程序會(huì)打印出555000。畢竟,它將total設(shè)置為用BigInteger表示的0,然后將5,000、50,000和500,000加到了這個(gè)變量上。如果你運(yùn)行該程序,你就會(huì)發(fā)現(xiàn)它打印的不是555000,而是0。很明顯,所有這些加法對(duì)total沒有產(chǎn)生任何影響。

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

  為了在一個(gè)包含對(duì)不可變對(duì)象引用的變量上執(zhí)行計(jì)算,我們需要將計(jì)算的結(jié)果賦值給該變量。這樣做就會(huì)產(chǎn)生下面的程序,它將打印出我們所期望的555000:

  復(fù)制代碼 代碼如下:

  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不可變類型的詳解】相關(guān)文章:

Java數(shù)據(jù)類型09-19

C語言的指針類型詳解05-21

php數(shù)據(jù)類型詳解09-24

java的數(shù)據(jù)類型說明08-28

Java數(shù)據(jù)類型轉(zhuǎn)換08-04

使用Java的枚舉類型的方法10-19

java類型的字符轉(zhuǎn)換的方法09-09

Java基本元素詳解07-15

Java內(nèi)存區(qū)域的使用詳解08-28

java的數(shù)據(jù)類型是什么09-10