這篇文章主要介紹“Java中boolean占幾字節(jié)”,在日常操作中,相信很多人在Java中boolean占幾字節(jié)問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java中boolean占幾字節(jié)”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
肥城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
這是一個(gè)看似簡(jiǎn)單,實(shí)則深究能發(fā)現(xiàn)其中一二玄機(jī)的問題
讓我們來看一下官方文檔中的說法
"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."
上面說的很清楚,boolean值只有true和false兩種,這個(gè)數(shù)據(jù)類型只代表1bit的信息,但是它到底占了多少空間,卻沒有嚴(yán)格的說法,也就是說,不論它的所占空間是多少,只有1bit的信息是有意義的
"In Oracle’s Java Virtual Machine implementation, boolean arrays in the Java programming language are encoded as Java Virtual Machine byte arrays, using 8 bits per boolean element."
在 Oracle 的 Java 虛擬機(jī)實(shí)現(xiàn)中,Java 語(yǔ)言中的 boolean 數(shù)組被編碼成 Java 虛擬機(jī)的 byte 數(shù)組,每個(gè)元素占 8 比特。
"The Java Virtual Machine does directly support boolean arrays. Its newarray instruction (§newarray) enables creation of boolean arrays. Arrays of type boolean are accessed and modified using the byte array instructions baload and bastore (§baload, §bastore)."
Java 虛擬機(jī)中雖然定義了 boolean 類型,但是支持是很有限的,沒有專門的虛擬機(jī)指令。
同時(shí)在 Java 語(yǔ)言中,對(duì) boolean 值的操作被替換成 int 數(shù)據(jù)類型。
再去看看 Java 虛擬機(jī)規(guī)范上是怎么寫的。
"Although the Java Virtual Machine defines a boolean type, it only provides very limited support for it. There are no Java Virtual Machine instructions solely dedicated to operations on boolean values. Instead, expressions in the Java programming language that operate on boolean values are compiled to use values of the Java Virtual Machine int data type."
“The Java Virtual Machine encodes boolean array components using 1 to represent true and 0 to represent false . Where Java programming language boolean values are mapped by compilers to values of Java Virtual Machine type int , the compilers must use the same encoding.”
Java 虛擬機(jī)使用 1 表示 true ,0 表示 false 來編碼 boolean 數(shù)組。
Java 語(yǔ)言的 boolean 值被編譯器映射成 Java 虛擬機(jī)的 int 類型的時(shí)候,也是一樣的
到這里,得出一個(gè)結(jié)論:
boolean到底占幾個(gè)字節(jié),依賴于JVM
第一,無(wú)論Boolean占用多少字節(jié),只有1bit的值是有意義的
第二,boolean 類型被編譯成 int 類型來使用,占 4 個(gè) byte 。
第三,在 Java 虛擬機(jī)里,1 表示 true ,0 表示 false 。
到此,關(guān)于“Java中boolean占幾字節(jié)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!