最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入Java不可變類型的詳解

 更新時間:2013年06月04日 17:05:19   作者:  
本篇文章是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加到了這個變量上。如果你運行該程序,你就會發(fā)現(xiàn)它打印的不是555000,而是0。很明顯,所有這些加法對total沒有產(chǎn)生任何影響。

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

為了在一個包含對不可變對象引用的變量上執(zhí)行計算,我們需要將計算的結(jié)果賦值給該變量。這樣做就會產(chǎn)生下面的程序,它將打印出我們所期望的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); 
        } 
    } 

相關(guān)文章

  • Java流式操作之Collectors工具類操作指南

    Java流式操作之Collectors工具類操作指南

    Collectors是Collector的工具類,類中提供了很多流收集、歸約、分組、分區(qū)等方法,方便我們直接使用,下面這篇文章主要給大家介紹了關(guān)于Java流式操作之Collectors工具類操作的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Java使用jni清屏功能的實現(xiàn)(只針對cmd)

    Java使用jni清屏功能的實現(xiàn)(只針對cmd)

    JNI是Java Native Interface的縮寫,它提供了若干的API實現(xiàn)了Java和其他語言的通信(主要是C&C++)。這篇文章主要介紹了Java使用jni清屏功能的實現(xiàn)(只針對cmd) ,感興趣的朋友跟隨腳本之家小編一起學習吧
    2018-05-05
  • Java實現(xiàn)學生管理系統(tǒng)(IO版)

    Java實現(xiàn)學生管理系統(tǒng)(IO版)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Spring-cloud 注冊服務提供者搭建方法

    Spring-cloud 注冊服務提供者搭建方法

    本篇文章主要介紹了Spring-cloud 注冊服務提供者搭建方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • SpringBoot?替換?if?的參數(shù)校驗示例代碼

    SpringBoot?替換?if?的參數(shù)校驗示例代碼

    Spring?Validation是對hibernate?validation的二次封裝,用于支持spring?mvc參數(shù)自動校驗,接下來,我們以spring-boot項目為例,介紹Spring?Validation的使用,需要的朋友可以參考下
    2022-12-12
  • JavaWeb實現(xiàn)學生信息管理系統(tǒng)(1)

    JavaWeb實現(xiàn)學生信息管理系統(tǒng)(1)

    這篇文章主要為大家詳細介紹了JavaWeb實現(xiàn)學生信息管理系統(tǒng)第一篇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • HttpClient連接池及重試機制解析

    HttpClient連接池及重試機制解析

    這篇文章主要介紹了HttpClient連接池及重試機制解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Intellij IDEA基于Springboot的遠程調(diào)試(圖文)

    Intellij IDEA基于Springboot的遠程調(diào)試(圖文)

    這篇文章主要介紹了Intellij IDEA基于Springboot的遠程調(diào)試(圖文),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • java RSAUtils 加密工具類操作

    java RSAUtils 加密工具類操作

    這篇文章主要介紹了java RSAUtils 加密工具類操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實體字段不一致問題處理方法

    MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實體字段不一致問題處理方法

    這篇文章主要介紹了MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實體字段不一致問題處理方法,需要的朋友可以參考下
    2017-05-05

最新評論

隆回县| 游戏| 双鸭山市| 兖州市| 阿鲁科尔沁旗| 彭泽县| 准格尔旗| 鄂伦春自治旗| 黔东| 胶州市| 方城县| 阜宁县| 绩溪县| 石河子市| 宜兰县| 名山县| 辽阳市| 大冶市| 本溪市| 邳州市| 社旗县| 凌云县| 藁城市| 芷江| 东山县| 淳安县| 新宁县| 闽清县| 砀山县| 道真| 云安县| 民乐县| 奈曼旗| 延长县| 临洮县| 定南县| 阿克陶县| 甘洛县| 米易县| 上林县| 乌拉特后旗|