Java中的boolean類型-創(chuàng)新互聯(lián)

boolean 數(shù)據(jù)類型 boolean 變量存儲為 8位(1 個字節(jié))的數(shù)值形式,但只能是 True 或是 False。boolean 變量的值顯示為 True 或 False(在使用 Print 的時候),或者 #TRUE# 或 #FALSE#(在使用 Write # 的時候)。使用關(guān)鍵字 True 與 False 可將 boolean 變量賦值為這兩個狀態(tài)中的一個。在java中boolean值只能是true和false,而不能用0和1代替,并且一定要小寫。boolean operate是指布爾運(yùn)算。

成都創(chuàng)新互聯(lián)公司專注于邵原企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。邵原網(wǎng)站建設(shè)公司,為邵原等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

每個boolean類型的變量中存儲的是一個true或者是false的邏輯值。那么存儲這個邏輯值,需要多大的空間呢?從理論上來講,存儲這個邏輯值只需要1個位(bit)就可以了,很多教科書上談到這個問題的時候,也說boolean類型的數(shù)據(jù)在內(nèi)存中只占1個位。

但是稍微有點(diǎn)計算機(jī)常識的人都知道:計算機(jī)完成尋址操作的時候,是以字節(jié)為最小單位進(jìn)行的。也就是說每次要讀取內(nèi)存中數(shù)據(jù)的時候,最小只能精確到1個字節(jié),不能單獨(dú)讀取某個位上的信息。如果boolean類型的變量的值只占1個位,計算機(jī)每次讀取到1個字節(jié)的信息,里面會包含8個boolean變量的值。計算機(jī)就不得不通過某種算法去確定這8個值中,哪一個才是我們要找的值。這樣做顯然非常不合理,因?yàn)橐瓿蛇@個“8選1”的操作又會增加運(yùn)算工作量。那么Java虛擬機(jī)到底是怎樣存儲boolean值呢?

為了徹底說清楚這個問題,我們還要刨一刨老底。每次JDK出新版本的時候,Java官方都會發(fā)布一個對應(yīng)版本的《虛擬機(jī)規(guī)范》。在《虛擬機(jī)規(guī)范》中,對boolean類型的存儲有專門的解釋,文中說到:“雖然定義了boolean這種數(shù)據(jù)類型,但是只對它提供了非常有限的支持。在Java虛擬機(jī)中沒有任何供boolean值專用的字節(jié)碼指令,Java語言表達(dá)式所操作的boolean值,在編譯之后都使用Java虛擬機(jī)中的int數(shù)據(jù)類型來代替,而boolean數(shù)組將會被編碼成Java虛擬機(jī)的byte數(shù)組,(因此)每個boolean元素占8位”。

按照這樣的說法我們可以得知:boolean類型的數(shù)據(jù)如果單獨(dú)使用,占4個字節(jié)的空間,而如果存儲到boolean數(shù)組中,每個元素又只占1個字節(jié)。
緊接著問題又來了:單獨(dú)使用boolean類型數(shù)據(jù)的時候,為什么要用4個字節(jié)來存儲呢?用1個或2個字節(jié)存儲豈不是更節(jié)省空間嗎?我們必須知道,當(dāng)下大部分處理器都是32位的(不是操作系統(tǒng)的32位,而是指CPU硬件),把boolean型數(shù)據(jù)存儲成4個字節(jié)(32位),存取效率是最高的。

最后還會有小伙伴問:《虛擬機(jī)規(guī)范》中是這么規(guī)定的,但在實(shí)現(xiàn)虛擬機(jī)的時候,真是按這樣的規(guī)定來執(zhí)行嗎?為了說清楚這個問題,我們又要科普一個小常識:世界上并非只有Oracle一家公司實(shí)現(xiàn)了Java虛擬機(jī)(JVM),也有其他廠商或機(jī)構(gòu)會發(fā)布自己的Java虛擬機(jī)實(shí)現(xiàn)。這些廠商或機(jī)構(gòu)在自己的虛擬機(jī)中,是否完全按照《規(guī)范》的規(guī)定來存儲boolean型數(shù)據(jù)就不得而知了。他們會綜合考慮運(yùn)算效率與存儲空間兩方面的性能。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:Java中的boolean類型-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://muchs.cn/article42/dheohc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、App設(shè)計、網(wǎng)站內(nèi)鏈面包屑導(dǎo)航、全網(wǎng)營銷推廣網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)