從C到Java,從過程到對象之二

數據類型的區別: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中有個叫拆箱和裝箱操做。注意這個術語是比喻出來的.其實是基本數據類型變量,與封裝類的對象之間的,互相賦值操做.

相關文章
相關標籤/搜索