亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Java中boolean類型占用多少個(gè)字節(jié)

    Java中boolean類型占用字節(jié):1、1個(gè)bit,理由是boolean類型的值只有true和false兩種邏輯值,在編譯后會(huì)使用1和0來表示;2、1個(gè)字節(jié),理由是雖然編譯后1和0只需占用1位空間,但計(jì)算機(jī)處理數(shù)據(jù)的最小單位是1個(gè)字節(jié)。

    Java中boolean類型占用多少個(gè)字節(jié)

    為什么要問這個(gè)問題,首先在Java中定義的八種基本數(shù)據(jù)類型中,除了其它七種類型都有明確的內(nèi)存占用字節(jié)數(shù)外,就boolean類型沒有給出具體的占用字節(jié)數(shù),因?yàn)閷μ摂M機(jī)來說根本就不存在 boolean 這個(gè)類型,boolean類型在編譯后會(huì)使用其他數(shù)據(jù)類型來表示,那boolean類型究竟占用多少個(gè)字節(jié)?帶著疑問,隨便網(wǎng)上一搜,答案五花八門,基本有以下幾種:

    1、1個(gè)bit

    理由是boolean類型的值只有true和false兩種邏輯值,在編譯后會(huì)使用1和0來表示,這兩個(gè)數(shù)在內(nèi)存中只需要1位(bit)即可存儲(chǔ),位是計(jì)算機(jī)最小的存儲(chǔ)單位。

    2、1個(gè)字節(jié)

    理由是雖然編譯后1和0只需占用1位空間,但計(jì)算機(jī)處理數(shù)據(jù)的最小單位是1個(gè)字節(jié),1個(gè)字節(jié)等于8位,實(shí)際存儲(chǔ)的空間是:用1個(gè)字節(jié)的最低位存儲(chǔ),其他7位用0填補(bǔ),如果值是true的話則存儲(chǔ)的二進(jìn)制為:0000 0001,如果是false的話則存儲(chǔ)的二進(jìn)制為:0000 0000。

    3、4個(gè)字節(jié)

    理由來源是《Java虛擬機(jī)規(guī)范》一書中的描述:“雖然定義了boolean這種數(shù)據(jù)類型,但是只對它提供了非常有限的支持。在Java虛擬機(jī)中沒有任何供boolean值專用的字節(jié)碼指令,Java語言表達(dá)式所操作的boolean值,在編譯之后都使用Java虛擬機(jī)中的int數(shù)據(jù)類型來代替,而boolean數(shù)組將會(huì)被編碼成Java虛擬機(jī)的byte數(shù)組,每個(gè)元素boolean元素占8位”。這樣我們可以得出boolean類型占了單獨(dú)使用是4個(gè)字節(jié),在數(shù)組中又是1個(gè)字節(jié)。

    顯然第三條是更準(zhǔn)確的說法,那虛擬機(jī)為什么要用int來代替boolean呢?為什么不用byte或short,這樣不是更節(jié)省內(nèi)存空間嗎。大多數(shù)人都會(huì)很自然的這樣去想,我同樣也有這個(gè)疑問,經(jīng)過查閱資料發(fā)現(xiàn),使用int的原因是,對于當(dāng)下32位的處理器(CPU)來說,一次處理數(shù)據(jù)是32位(這里不是指的是32/64位系統(tǒng),而是指CPU硬件層面),具有高效存取的特點(diǎn)。

    最后的總結(jié):

    根據(jù)http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html官方文檔的描述:

    boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.

    布爾類型:布爾數(shù)據(jù)類型只有兩個(gè)可能的值:真和假。使用此數(shù)據(jù)類型為跟蹤真/假條件的簡單標(biāo)記。這種數(shù)據(jù)類型就表示這一點(diǎn)信息,但是它的“大小”并不是精確定義的。

    可以看出,boolean類型沒有給出精確的定義,《Java虛擬機(jī)規(guī)范》給出了4個(gè)字節(jié),和boolean數(shù)組1個(gè)字節(jié)的定義,具體還要看虛擬機(jī)實(shí)現(xiàn)是否按照規(guī)范來,所以1個(gè)字節(jié)、4個(gè)字節(jié)都是有可能的。這其實(shí)是運(yùn)算效率和存儲(chǔ)空間之間的博弈,兩者都非常的重要。

    相關(guān)免費(fèi)學(xué)習(xí)推薦:java基礎(chǔ)教程

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)