Java語言是靜態(tài)類型的(statical typed),也就是說所有變量和表達(dá)式的類型再編譯時(shí)就已經(jīng)完全確定。Java語言也是強(qiáng)類型(Strong typed)的。強(qiáng)類型意味著每個(gè)變量都具有一種類型,每個(gè)表達(dá)式具有一種類型,并且每種類型都是嚴(yán)格定義的,類型限制了變量可以存儲哪些值,表達(dá)式最終產(chǎn)生什么值。同時(shí)限制了這些值可以進(jìn)行的操作類型以及操作的具體方式。所有的賦值操作,無論是顯式的還是在方法調(diào)用中通過參數(shù)傳遞,都要進(jìn)行類型兼容性檢查。簡單地說,類型限定數(shù)據(jù)的取值范圍和操作方法。
每個(gè)變量都必須聲明一種類型(Type)。類型分類兩大類:
基本數(shù)據(jù)類型Primitive Type
引用數(shù)據(jù)類型Reference Type
引用類型引用對象,而基本數(shù)據(jù)類型直接包含值。
Java基本數(shù)據(jù)類型包括boolean類型以及數(shù)值類型。數(shù)值類型又分為整型類型和浮點(diǎn)型。整型有5種:byte ,short, int,long ,char(char本質(zhì)上是一種特殊的整數(shù)類型)。浮點(diǎn)類型有float和double。
Java引用類型包括:類,接口,注解,枚舉和數(shù)組,后面的章節(jié)將陸續(xù)學(xué)到。
另外,null是一種特殊的類型,但是不能聲明一個(gè)變量為null類型,null 類型的唯一取值就是null。null可以賦值值給任意的引用類型或者轉(zhuǎn)化成任意的引用類型。在實(shí)踐中,一般把null當(dāng)做字面量(literal),這個(gè)字面量可是是任意的引用類型。