下面這些問題的答案也許會出乎你的意料,看看能答對幾道吧。
java中boolean類型變量佔幾個字節
絕大部分人的回答是一個字節,但實際上應該區分這個變量是被存放在堆上,還是棧上;
如果是堆上,那麼是一個字節;如果是棧上,應該是4個字節;
如何證明:寫一個main方法,定義一個boolean類型變量,然後編譯為字節碼,再使用javap命令查看對應的字節碼,發現是這個樣子的:i_const_1;說明在字節碼層面將boolean類型的處理成了int類型;
java中,0有幾種表示方式
看到這個問題,估計很多人會一臉懵~;
那麼換一種稍微簡單點的問法,0x0000000和0x8000000 的區別是什麼,前者表示+0.0 後者表示-0.0;
那麼0x0000000 和 0x8000000相等嗎?儘管內存中存儲的值不同,但在語言層面,二者是相等的,比較會返回true;
那麼java中的0到底有幾種表示方式呢?
0、false、\\\\u0000、0L、0F、0D;每一種基本類型數據都對應其一種表示方式。
關於NAN的含義以及數值比較問題
NAN的全稱是Not an num;
NAN和任何數值比較,都是不相等的;也就是 NAN != a 無論a是什麼值,都會返回true;
但其他比較,比如NAA>a 或者 NAN<=a都會返回flase
閱讀更多 IT技術百貨 的文章