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