深入解析Java編程中的boolean對(duì)象的運(yùn)用
只能是true或false兩個(gè)值之一的變量就是布爾(boolean)類(lèi)型變量,true和false是布爾型直接量。你可以用下面的語(yǔ)句定義一個(gè)名稱(chēng)為state的布爾型變量:
boolean state=true
該語(yǔ)句用true值對(duì)變量state進(jìn)行了初始化。你也可以使用賦值語(yǔ)句為一個(gè)boolean型變量賦值。例如,語(yǔ)句,
state=false
設(shè)置變量state的值為false.
目前,我們除了為布爾變量賦值外,還不能進(jìn)行更多的操作,但正像你在下一章中將要看到的,布爾型變量在程序做判定時(shí),特別是在我們能夠用表達(dá)式產(chǎn)生一個(gè)boolean型結(jié)果時(shí)顯得更加有用。
有幾個(gè)組合布爾型數(shù)值的運(yùn)算符,包括:布爾與(AND),布爾或(oR)和布爾非(它們分別對(duì)應(yīng)&&、11、!),以及產(chǎn)生boolean型結(jié)果的比較運(yùn)算符。與其現(xiàn)在抽象地學(xué)習(xí)它們,到不如我們推遲到下一章,在那里,我們可以在練習(xí)中看到如何應(yīng)用它們改變程序的執(zhí)行順序。
有一點(diǎn)你需要注意,boolean型變量不同于其他的基本數(shù)據(jù)類(lèi)型,它不能被轉(zhuǎn)換成任何其他的基本類(lèi)型,其他的基本類(lèi)型也不能被轉(zhuǎn)換成boolean類(lèi)型。
Java生成Boolean對(duì)象的三種方法之比較
Java生成Boolean對(duì)象的第一種常見(jiàn)方法是通過(guò)new操作符
Boolean boolean1 = new Boolean(1==1);
第二種是通過(guò)靜態(tài)方法valueOf
Boolean boolean1 = Boolean.valueOf(1==1);
第三種是JDK1.5之后的自動(dòng)裝箱
Boolean boolean1 = 1==1;
這三種方法有什么區(qū)別呢?
先看一段代碼
Boolean[] boolean1 = new Boolean[100]; Boolean[] boolean2 = new Boolean[100]; Boolean[] boolean3 = new Boolean[100]; for (int i = 0; i < 100;i++){ boolean1[i] = Boolean.valueOf(1==1); } for (int i = 0;i < 100;i++){ boolean2[i] = new Boolean(1==1); } for (int i = 0; i < 100;i++){ boolean3[i] = 1==1; } System.out.println("valueOf: " + String.valueOf(boolean1[1] == boolean1[2])); System.out.println("new Boolean: " + String.valueOf(boolean2[1] == boolean2[2])); System.out.println("auto wrap: " + String.valueOf(boolean3[1] == boolean3[2]));
輸出結(jié)果是:
valueOf: true new Boolean: false auto wrap: true
為什么會(huì)這樣呢?
原因就在于用new創(chuàng)建的Boolean對(duì)象是不斷的新創(chuàng)建一個(gè)實(shí)例對(duì)象,而valueOf則是返回Boolean類(lèi)里的靜態(tài)成員變量,不會(huì)產(chǎn)生大量相同的實(shí)例變量。自動(dòng)包裝和valueOf類(lèi)似.
實(shí)際上jdk文檔也是建議用valueOf代替new方式來(lái)創(chuàng)建Boolean類(lèi)對(duì)象。
相關(guān)文章
sqlite數(shù)據(jù)庫(kù)的介紹與java操作sqlite的實(shí)例講解
今天小編就為大家分享一篇關(guān)于sqlite數(shù)據(jù)庫(kù)的介紹與java操作sqlite的實(shí)例講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02在Mybatis使用Integer與''進(jìn)行比較的坑及解決
這篇文章主要介紹了在Mybatis使用Integer與''進(jìn)行比較的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03分頁(yè)技術(shù)原理與實(shí)現(xiàn)之Java+Oracle代碼實(shí)現(xiàn)分頁(yè)(二)
這篇文章主要介紹了分頁(yè)技術(shù)原理與實(shí)現(xiàn)的第二篇:Java+Oracle代碼實(shí)現(xiàn)分頁(yè),感興趣的小伙伴們可以參考一下2016-06-06Java實(shí)戰(zhàn)之鮮花商城系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)鮮花商城系統(tǒng),文中采用的技術(shù)有Spring、SpringMVC、Mybatis、JSP等,感興趣的小伙伴可以了解一下2022-05-05分享Java程序員應(yīng)該知道的10個(gè)調(diào)試技巧
在本文中,作者將使用大家常用的的開(kāi)發(fā)工具Eclipse來(lái)調(diào)試Java應(yīng)用程序。但這里介紹的調(diào)試方法基本都是通用的,也適用于NetBeans IDE,我們會(huì)把重點(diǎn)放在運(yùn)行時(shí)上面2012-09-09Java實(shí)現(xiàn)ATM機(jī)操作系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)ATM機(jī)操作系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Java控制臺(tái)版五子棋的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Java控制臺(tái)版五子棋的簡(jiǎn)單實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01HashMap vs TreeMap vs Hashtable vs LinkedHashMap
這篇文章主要介紹了HashMap vs TreeMap vs Hashtable vs LinkedHashMap的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07