Java / 关键字
一、基本數據類型
| 整數型 | byte、short、int、long | 8 \ 16 \ 32 \ 64 | 0 \ 0 \ 0 \ 0L |
| 浮點型 | float、double | 32 \ 64 | 0.0f \ 0.0d |
| 字符型 | char | 16 | ? |
| 布爾型 | boolean | (見拓展 1) | ? |
二、引用類型
(參考鏈接:https://www.cnblogs.com/1130136248wlxk/articles/5105524.html)
引用類型變量由類的構造函數創建,可以使用它們訪問所引用的對象。這些變量在聲明時被指定為一個特定的類型,比如Employee、Pubby 等。變量一旦聲明后,類型就不能被改變了。
對象、數組都是引用數據類型。
所有引用類型的默認值都是 null 。
一個引用變量可以用來引用與任何與之兼容的類型。
三、關于類的關鍵字
| class | 創建類 |
| public | 訪問權限管理 |
| protected | |
| private | |
| extends | 繼承 |
四、拓展
1、boolean 類型占多少個字節?(參考鏈接:https://blog.csdn.net/qq_42183409/article/details/101119020)
(1)1 bit
理由是 boolean 類型的值只有 true 和 false 兩種邏輯值,在編譯后會使用 1 和 0 來表示,這兩個數在內存中只需要 1 位(bit)即可存儲,位是計算機最小的存儲單位。
(2)1 byte
理由是雖然編譯后 1 和 0 只需占用 1 位空間,但計算機處理數據的最小單位是 1 個字節,1 個字節等于 8 位,實際存儲的空間是:用 1 個字節的最低位存儲,其他 7 位用 0 填補。如果值是 true 的話則存儲的二進制為:0000 0001,如果是 false 的話則存儲的二進制為:0000 0000。
(3)4 byte
在 JVM 虛擬機中 boolean 占 4 個字節,boolean 數組 1 個字節
理由來源是《Java虛擬機規范》一書中的描述:“雖然定義了 boolean 這種數據類型,但是只對它提供了非常有限的支持。在 JVM 中沒有任何供 boolean 值專用的字節碼指令,Java 語言表達式所操作的 boolean 值,在編譯之后都使用 JVM 中的 int 數據類型來代替,而 boolean 數組將會被編碼成Java虛擬機的 byte 數組,每個元素 boolean 元素占 8 位”。這樣我們可以得出boolean 類型單獨使用時占 4 byte,在數組中又是 1 byte。
顯然第三條是更準確的說法,那 JVM 為什么要用 int 來代替boolean呢?為什么不用 byte 或 short,這樣不是更節省內存空間嗎?大多數人都會很自然的這樣去想,我同樣也有這個疑問,經過查閱資料發現,使用 int 的原因是:對于當下 32 位的處理器(CPU)來說,一次處理數據是32位(這里不是指的是32/64位系統,而是指CPU硬件層面),具有高效存取的特點。
?
(SAW:Game Over!)
總結
以上是生活随笔為你收集整理的Java / 关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命令 / Linux / netstat
- 下一篇: vscode / 杂项