Jupyter Notebook 有兩種鍵盤輸入模式。 編輯模式,允許你往單元中鍵入代碼或文本;這時的單元框線是綠色的。 命令模式,鍵盤輸入運行程式命令;這時的單元框線是灰色。 1命令模式 (按鍵 Esc 開啟)快捷鍵: Enter : 轉入編輯模式 Shift-Enter : 運行本單元,選中下個 ...
JAVA基本類型和包裝類型
前言
Java語言中的數據類型分為基本數據類型和引用類型,而我們進行Java開發的時候都聽說過基本數據類型和包裝類型,今天我們就來詳細聊一聊Java中的基本數據類型和包裝類型之間的區別。
基本數據類型
Java中的基本數據類型一共有8種基本數據類型,分別是4種整型(byte、short、int、long)、2種浮點型(float、double)、1種字元類型(char)、1中布爾類型(boolean)。下麵我們使用表格來詳細展示一下
基本數據類型 | 位元組 | 位數 | 預設值 | 取值範圍 |
---|---|---|---|---|
byte | 1 | 8 | 0 | -128~127或者-2^7~2^7-1 |
short | 2 | 16 | 0 | -32768~32767或者-2^15~2^15-1 |
int | 4 | 32 | 0 | -2147483648~2147483647 |
long | 8 | 64 | 0L | -9223372036854775808~9223372036854775807或者-2^63~2^63-1 |
float | 4 | 32 | 0.0f | 3.4*10^(-38)~3.4*10^38 |
double | 8 | 64 | 0.0d | 1.7*10^(-308)~1.7*10^308 |
char | 2 | 16 | 'u0000' | 0~65535或者0~2^16-1 |
boolean | 1/8 | 1 | false | true,false |
註:每個位元組包含8個位。
boolean占用的位元組數,一直有很多種答案,一般有認為1個bit、1個位元組、4個位元組等,但是具體占用多少位,還是需要看虛擬機的具體實現,需要考慮性能、存儲等多個因素。
包裝類型
基本數據類型比較簡單,但是不具有對象的特性,所以Java將基本數據類型封裝後,就產生了包裝類。包裝類和基本數據類型都有對應關係,並且還包含各類方法。
基本數據類型 | 包裝類 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
我們在使用基本數據類型和包裝類型時,肯定會遇到相關轉換,這種轉換我們稱之為"裝箱"和"拆箱"。例如將基本數據類型轉換為包裝類叫做裝箱,將包裝類轉換成基本數據類型叫做拆箱。
Integer i = Integer.valueOf(100); // 裝箱
int i1 = i.intValue(); // 拆箱
Java還提供了自動拆箱和自動裝箱的功能。
Integer i = 100; // 裝箱
int i1 = i; // 拆箱
區別
- 包裝類型不賦值是null,基本數據類型有預設值。
- 包裝類型可以用於泛型,基本數據類型不可以。
- 基本數據類型占用的空間小。
- 基本數據類型是存儲在棧中的,是值傳遞,包裝類型時存儲在堆中的,存儲的是堆中引用,是引用傳遞。
- 聲明方式不用,包裝類型需要使用new關鍵字創建,基本類型不需要。
原文鏈接:https://monkey.blog.xpyvip.top/archives/java-ji-ben-lei-xing-he-bao-zhuang-lei-xing