Java的数据类型及其封装器类
Java基本類型共有8種,基本類型可以分為3類,字符類型char,布爾類型boolean和數(shù)值類型byte、short、int、long、float、double。數(shù)值類型又可以分為整數(shù)類型byte、short、int、long和浮點(diǎn)數(shù)類型float、double。JAVA中的數(shù)值類型不存在無符號的,它們的取值范圍是固定的,不會隨著機(jī)器硬件環(huán)境或操作系統(tǒng)的改變而改變。實(shí)際上,JAVA中還存在另外1種基本類型void,它也有對應(yīng)的包裝類 java.lang.Void,不過我們沒法直接對它們進(jìn)行操作。8 中類型表示范圍以下:
byte:8位,最大存儲數(shù)據(jù)量是255,寄存的數(shù)據(jù)范圍是⑴28~127之間。
short:16位,最大數(shù)據(jù)存儲量是65536,數(shù)據(jù)范圍是⑶2768~32767之間。
int:32位,最大數(shù)據(jù)存儲容量是2的32次方減1,數(shù)據(jù)范圍是負(fù)的2的31次方到正的2的31次方減1。
long:64位,最大數(shù)據(jù)存儲容量是2的64次方減1,數(shù)據(jù)范圍為負(fù)的2的63次方到正的2的63次方減1。
float:32位,數(shù)據(jù)范圍在3.4e⑷5~1.4e38,直接賦值時必須在數(shù)字后加上f或F。
double:64位,數(shù)據(jù)范圍在4.9e⑶24~1.8e308,賦值時可以加d或D也能夠不加。
boolean:只有true和false兩個取值。
char:16位,存儲Unicode碼,用單引號賦值。
Java決定了每種簡單類型的大小。這些大小其實(shí)不隨著機(jī)器結(jié)構(gòu)的變化而變化。這類大小的不可更改正是Java程序具有很強(qiáng)移植能力的緣由之1。下表列出了Java中定義的簡單類型、占用2進(jìn)制位數(shù)及對應(yīng)的封裝器類。
?
| 簡單類型 | boolean | byte | char | short | Int | long | float | double | void |
| 2進(jìn)制位數(shù) | 1 | 8 | 16 | 16 | 32 | 64 | 32 | 64 | -- |
| 封裝器類 | Boolean | Byte | Character | Short | Integer | Long | Float | Double | Void |
? ?
對數(shù)值類型的基本類型的取值范圍,我們無需強(qiáng)迫去記憶,由于它們的值都已以常量的情勢定義在對應(yīng)的包裝類中了。如:
基本類型byte 2進(jìn)制位數(shù):Byte.SIZE最小值:Byte.MIN_VALUE最大值:Byte.MAX_VALUE
基本類型short2進(jìn)制位數(shù):Short.SIZE最小值:Short.MIN_VALUE最大值:Short.MAX_VALUE
基本類型char2進(jìn)制位數(shù):Character.SIZE最小值:Character.MIN_VALUE最大值:Character.MAX_VALUE
基本類型double 2進(jìn)制位數(shù):Double.SIZE最小值:Double.MIN_VALUE最大值:Double.MAX_VALUE
注意:float、double兩種類型的最小值與Float.MIN_VALUE、 Double.MIN_VALUE的值其實(shí)不相同,實(shí)際上Float.MIN_VALUE和Double.MIN_VALUE分別指的是 float和double類型所能表示的最小正數(shù)。也就是說存在這樣1種情況,0到±Float.MIN_VALUE之間的值float類型沒法表示,0 到±Double.MIN_VALUE之間的值double類型沒法表示。這并沒有甚么好奇怪的,由于這些范圍內(nèi)的數(shù)值超越了它們的精度范圍。
Float和Double的最小值和最大值都是以科學(xué)記數(shù)法的情勢輸出的,結(jié)尾的"E+數(shù)字"表示E之前的數(shù)字要乘以10的多少倍。比如3.14E3就是3.14×1000=3140,3.14E⑶就是3.14/1000=0.00314。
Java基本類型存儲在棧中,因此它們的存取速度要快于存儲在堆中的對應(yīng)包裝類的實(shí)例對象。從Java5.0(1.5)開始,JAVA虛擬機(jī)(Java Virtual Machine)可以完成基本類型和它們對應(yīng)包裝類之間的自動轉(zhuǎn)換。因此我們在賦值、參數(shù)傳遞和數(shù)學(xué)運(yùn)算的時候像使用基本類型1樣使用它們的包裝類,但這其實(shí)不意味著你可以通過基本類型調(diào)用它們的包裝類才具有的方法。另外,所有基本類型(包括void)的包裝類都使用了final修飾,因此我們沒法繼承它們擴(kuò)大新的類,也沒法重寫它們的任何方法。
基本類型的優(yōu)勢:數(shù)據(jù)存儲相對簡單,運(yùn)算效力比較高
包裝類的優(yōu)勢:有的容易,比如集合的元素必須是對象類型,滿足了java1切皆是對象的思想
為了讓學(xué)習(xí)變得輕松、高效,今天給大家免費(fèi)分享一套Java入門教學(xué)資源。幫助大家在成為Java架構(gòu)師的道路上披荊斬棘。需要資料的歡迎加入學(xué)習(xí)交流群:9285,05736
總結(jié)
以上是生活随笔為你收集整理的Java的数据类型及其封装器类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈Java中类加载机制
- 下一篇: Java程序员需要了解的两种服务器设计模