數(shù)據(jù)類型的分類
?Java語言是一個強類型語言
--所有變量获列,必須先聲明一種類型谷市,再使用。
--指定類型的變量击孩,只能裝對應(yīng)類型的數(shù)據(jù)迫悠。
?Java語言支持的分類分為兩大類:基本數(shù)據(jù)類型和引用類型
--基本數(shù)據(jù)類型包括八大數(shù)據(jù)類型。
--引用類型包括數(shù)組巩梢、類创泄、接口。
第一類:布爾型(boolean)
?boolean類型數(shù)據(jù)只允許取值true或false括蝠,不可以0或非0的正數(shù)替代true和false鞠抑,這點和C語言不同
?通常用在判斷條件中使用boolean型
在Java中,條件成立返回 true忌警,否則返回 false搁拙,即布爾類型。例如:
第二類:字符型(char)
?字符也占2個字節(jié),字符型也可以當成整型用
?字符型常量以單引號 ' ' 括起來
?字符常量有三種表示形式
? ?--直接通過單個字符來指定字符常量,如:'a','2'等
? ?--通過轉(zhuǎn)義字符叼风,如 '\n' (代表換行符)
? ?--直接使用Unicode值來表示字符常量
※ 注:字符和字符串存在很大的區(qū)別,字符串是以雙引號 “ ” 括起來弧满,字符串是引用類型。
第三類:整數(shù)型(byte此熬、short庭呜、int滑进、long)
?Java整型常量的表現(xiàn)形式:
? ? --十進制整數(shù),如:12 募谎,-314扶关,0。
? ? --八進制整數(shù)数冬, ?以 0 開頭节槐,如:012。
? ?--十六進制整數(shù)拐纱,以 0x 或 0X 開頭铜异,如:0x12。
? ?--二進制整數(shù)秸架, ? ?以 0b 或 0B 開頭揍庄,如:0b12(jdk1.7)。
?Java整型常量默認為int东抹,聲明long型常量可以后加‘l’或‘L’,如:
int g=600;//正確? ? long h=8888888888L;//必須加‘l’否則會出錯
?Java各整數(shù)類型有固定的表述范圍和字段長度蚂子,其不受具體操作系統(tǒng)的影響以保證Java程序的可移植性
? ?--byte? 從-128 到? 127
? ?--short 從-32768 到? 32767
? ?--int ? ? 從-2147483648 到? 2147483647
? ?--long? 從-9223372036854775808 到? 9223372036854775807
第四類:浮點型(float、double)
?Java浮點類型常量的表現(xiàn)形式:
--十進制數(shù)形式缭黔,如:3.14 食茎,314.0,.314馏谨。(浮點數(shù)必須包含小數(shù),否則系統(tǒng)將認為是一個int 型)
--科學計數(shù)法形式别渔,如:3.14e2 , ?3.14E2 , 100E-2。(只有浮點數(shù)才有科學計數(shù)法)
?Java浮點型常量默認為double惧互,聲float明long型常量可以后加‘f’或‘F’,如:
double g=3.14;//正確? ? float h=2.8888888888f;//必須加‘f’否則會出錯
Java浮點類型有固定的表述范圍和字段長度钠糊,如下:
?Java中三個特殊的浮點值,經(jīng)常被用來表示異常:正無窮(POSITIVE_INFINITY)負無窮(NEGATIVE_INFINITY)和非數(shù)(NaN)
? ?--因為有兩種浮點類型壹哺,所以具體的代碼表示分別為:
? ? ?Float型:Float.POSITIVE_INFINITY ? ? ? ? ? ?Float.NEGATIVE_INFINITY ? ? ? Float.NaN
? ? ?Double型:Double.POSITIVE_INFINITY ? ?Double.NEGATIVE_INFINITY ? ?Double.NaN
? ?--它們之間有如下關(guān)系:
? ? ?1.相同的無窮大之間是相等的,即負無窮和負無窮相等艘刚,正無窮和正無窮相等
? ? ? 2.非數(shù)不與任何值相當管宵,和自己也不相等
? --其得到方式分別為:
? ? ?1. ?0.0/0.0或?qū)ω摂?shù)開方得到非數(shù)
? ? ?2.只有浮點數(shù)除以0才能得到正無窮或負無窮(因為java語言的類型自動轉(zhuǎn)換,執(zhí)行這個算數(shù)表達 ? ? ? ? ?式時攀甚,0會自動轉(zhuǎn)換為浮點類型即0.0)箩朴;同理,若分母上是整型數(shù)值秋度,分子上是浮點數(shù)0.0炸庞,也 ? ? ? ? ?可得到正無窮或負無窮。但整數(shù)除0將報錯荚斯。
基本數(shù)據(jù)類型的類型轉(zhuǎn)換
在Java中埠居,boolean類型與所有其他7種類型都不能進行轉(zhuǎn)換查牌,這一點很明確。對于其他7中數(shù)值類型滥壕,它們之間都可以進行轉(zhuǎn)換纸颜,但是可能會存在精度損失或者其他一些變化。轉(zhuǎn)換分為自動轉(zhuǎn)換和強制轉(zhuǎn)換绎橘。對于自動轉(zhuǎn)換(隱式)胁孙,無需任何操作,而強制類型轉(zhuǎn)換需要顯式轉(zhuǎn)換称鳞,即使用轉(zhuǎn)換操作符(type)涮较。首先將7種類型按下面順序排列一下:
byte <(short=char)< int < long < float < double
如果從小轉(zhuǎn)換到大,可以自動完成冈止,而從大到小狂票,必須強制轉(zhuǎn)換。short和char兩種相同類型也必須強制轉(zhuǎn)換靶瘸。
?Java語言是一個強類型語言