1. 程式人生 > >二、數據類型

二、數據類型

之間 布爾型 命名法 進行 行數據 變量名 失敗 劃線 能夠

java語言還是一種強類型的語言【對於每一種數據都定義了非常明確的數據類型,在內存中分配了不同大小的內存空間,進行數據的存儲】
1、數據類型的分類
基本數據類型
數值型
字節整型【byte】
短整型【short】
整型【int】
長整型【long】

浮點型
單精度【float】
雙精度【double】

字符型
【char】
布爾型
【boolean】

引用數據類型
類【字符串屬於類【String】】
接口【interface】
數組【array:不是關鍵字】
枚舉【enum】

2.每種數據類型占用空間的大小
類型名    關鍵字   占用的字節數  取值範圍
-----------------------------------------------------------------
字節整型 byte   1        -128~127
短整型    short    2        -2^15~2^7-1
整型    int   4       -2^31~2^31-1
長整型    long    8       -2^63~2^63-1
-----------------------------------------------------------------
單精度    float     4        -2^128~2^127
雙精度    double    8       -2^1024~2^1023
-----------------------------------------------------------------
字符型    char    2      0~65535
-----------------------------------------------------------------
布爾型   boolean   1       true和false

需要註意的問題:
a.浮點型:
1>如果數據小的話,顯示的是數據本身
2>如果數據較大的話,顯示的是科學計數法
3>同字節的浮點數比同字節的整數能夠存儲更大數據
b.字符型:
1>使用單引號表示,只有單個字符,可以使用字母,數字,符號,中文
2>使用字符集【ASCII碼】表示【表示將語言文字和計算機表示建立起來的一個映射關系】
列如:a--->97 A--->65 0--->48

3.不同數據類型的定義

可能會出現的錯誤:
1>在定義的時候,缺少了三要素中的任何一個
2>在同一個方法中或者類中,出現同名的變量
3>如果在一個變量的前面加上final關鍵字,那麽這個變量就是一個常量
被final修飾的變量,變量名稱的定義 將不在遵循小駝峰命名法,遵循常量命名發:所有的字母全部大寫,並且不同的單詞之間使用下劃線分隔

問題:不同數據類型之間能直接進行加法運算嗎?
答案:不能,不同類型的數據之間如果要進行運算的話,必須將他們轉化為同一種數據類型


4.數據類型的裝換
a.自動類型裝換
轉換的原理: 相兼容的數據類型之間,將取值範圍為較小的數值或者變量賦值給取值範圍較大的數據類型對應的變量
大=小

b.強制類型裝換

char,byte,short在參與運算之前,都會自動提升為int類型

裝換的原理: 相兼容的數據類型之間,將取值範圍為較大的數值或者變量賦值給取值範圍較小的數據類型對應的變量
小=大
語法:小範圍 變量名 = (小範圍)大範圍的變量或者數值

總結:
a.整型數據在默認情況下數據類型是int,浮點型數據默認情況下是double
b.byte,short,char類型的變量在參與運算之前,都會自動提升為int類型,然後才參與運算
特殊:char提升為int類型的時候遵循ASCII碼
c.整型和浮點型之間運算的時候,整型會統統提升為浮點型,然後才參與運算

byte b1=2,b2=3,b;
b=b1+b2;
b=2+3;
問題:上面的語句,哪句會編譯失敗,為什麽?
b=b1+b2;不能,因為b1+b2自動提升到int類型了
b=2+3;能,-128~127

問題:僅僅一個整數,為什麽會出現四種數據類型?
答案:每種數據類型在開辟空間的時候,所占用的空間大小各不相同,為了避免內存空間的浪費,在合適的時機選用合適的數據類型

二、數據類型