數據類型的區別:ide
Java的數據類型分兩大類:基本類型,引用類型spa
基本類型共有8種:對象
(a)其中整型數據類型佔4種:byte,short,int,longci
(b)小數類型2種:float,double文檔
(c)布爾類型:boolean編譯器
(d)字符類型:charit
引用類型:全部由類定義的變量,都是引用類型編譯
OK,在Java中就這些數據類型。沒有了C語言中的:unsigned,long long,並且bool變成了boolean.table
在C語言中,當咱們談到數值類型時,很天然的想到是它的取值範圍,佔的字節數,是有符號類型仍是無符號類型.class
並且還得看CPU的ALU是多少位的,才能決定。所以在C世界中,爲了讓你的代碼能更容易的移植,得弄個頭文件,typedef一下基類型 .
在Java中,因爲沒有了unsigned,因此數值類型的取值範圍,都是由負2的(n-1)次方到正2的(n-1)次方減1這個範圍.n是該類型所佔的位數.
好比一個字節8位,它的取值範置是:—2的(7)次方到2的(7)次方減1.即(-128)~(127).沒有從0-255這種狀況。
在Java中,每個基本類型都有一個封裝類,它們是:
基本數據類型 | 封裝類 | 基本數據類型 | 封裝類 |
byte | Byte | double | Double |
short | Short | float | Float |
char | Character | long | Long |
int | Integer | boolean | Boolean |
若是你用這些封裝類型定義了一個對象,那麼這個對象有一個常量成員MAX_VALUE,表達該類型的最大值,還有一個常量成員值MIN_VALUE,表達該類型的最小值.
引用它們的方法,和C語言中,結構體變量引用成員變量同樣。
對象名.MAX_VALUE 和 對象名.MIN_VALUE 。
當要給float類型的數據賦值時,要加一個f在數後面, 好比:float value = 1.5f;若是寫在 float value = 1.5;
編譯器認爲1.5是double類型,而不是float類型 。
假如咱們要表達的數值超過了,基本數據類型取值範圍,怎麼作呢,麻煩嗎?想一下吧,假設Java中沒有提供現成的解決方案,你將如何作才能實現它。
OK,你只要稍許想想便可,去下載一個JDK——API文檔來看看BigDecimal這個類吧.看Java是如何作的,爲何這麼作。
在Java中有個叫拆箱和裝箱操做。注意這個術語是比喻出來的.其實是基本數據類型變量,與封裝類的對象之間的,互相賦值操做.