解讀為何java中的boolean類型是32位的
為何java的boolean類型是32位
我們首先知道boolean類型的值有兩個(gè)“真和假”。
它到底是幾個(gè)字節(jié)的呢?
答:
boolean類型是通過(guò)int實(shí)現(xiàn)的,那么既然int占4個(gè)字節(jié),boolean也自然占4個(gè)字節(jié)。
接下來(lái)看圖
我們從底層來(lái)了解為什么要選擇調(diào)用int。
(圖中的高速緩存簡(jiǎn)化了 實(shí)際上還有:運(yùn)算單元-寄存器-l1-l2-l3等)
我們知道
計(jì)算機(jī)中最小的單位是1bit,而最小的存儲(chǔ)單元是一個(gè)字節(jié),我們不用一字節(jié)為存儲(chǔ)單位,是為了提高讀取數(shù)據(jù)的速率。
由圖示,我們可以知道計(jì)算機(jī)讀取數(shù)據(jù)的方式:
通過(guò)總線來(lái)讀取電壓信號(hào),每次只能讀一個(gè)數(shù)據(jù),否則會(huì)擾亂電壓信號(hào)。
所以我們可以知道:數(shù)據(jù)是依次讀取的,讀下一個(gè)之前,必須先讀完正在讀取的數(shù)據(jù)。
當(dāng)boolean如果用一字節(jié)來(lái)表示的話,程序中會(huì)有大量的數(shù)據(jù)在空間中。當(dāng)我們想要使用數(shù)據(jù)的時(shí)候,就會(huì)從數(shù)據(jù)總體中選擇數(shù)據(jù)。然而同時(shí)只能讀取一個(gè)數(shù)據(jù)。由于此時(shí)數(shù)據(jù)總體數(shù)量比較大,所以讀到數(shù)據(jù)的概率會(huì)比較小。
而如果用int來(lái)表示,它會(huì)占用4個(gè)字節(jié),會(huì)使緩存的數(shù)據(jù)總量會(huì)減少,降低了數(shù)據(jù)阻塞的概率。這有利于提高我們讀取數(shù)據(jù)的效率。
對(duì)于當(dāng)下32位的處理器來(lái)說(shuō),一次處理數(shù)據(jù)是32位(這里不是指的是32/64位系統(tǒng),而是指CPU硬件層面),具有高效存取的特點(diǎn)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用LinkedHashMap進(jìn)行分?jǐn)?shù)排序
這篇文章主要介紹了Java使用LinkedHashMap進(jìn)行分?jǐn)?shù)排序的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05java 中多線程生產(chǎn)者消費(fèi)者問(wèn)題詳細(xì)介紹
這篇文章主要介紹了java 中多線程生產(chǎn)者消費(fèi)者問(wèn)題詳細(xì)介紹的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09JAVA JDK8 List分組的實(shí)現(xiàn)和用法
今天小編就為大家分享一篇關(guān)于JAVA JDK8 List分組的實(shí)現(xiàn)和用法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12Java實(shí)現(xiàn)藍(lán)橋杯數(shù)獨(dú)游戲的示例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)藍(lán)橋杯數(shù)獨(dú)游戲的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02詳解如何將Spring Boot應(yīng)用跑在Docker容器中
這篇文章主要介紹了詳解如何將Spring Boot應(yīng)用跑在Docker容器中,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07