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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/518825.html
標籤:Java
上一篇:反射
下一篇:day03-2-拓展
