這節博客將向大家講解java的數據類型,在講解數據類型前,先來看一下變量。
(一)變量
java語言是強類型語言,強類型包含兩方面的含義。
1:所有的變量必須先聲明,後使用。
2:指定類型的變量只能接受類型與之匹配的值。
這意味着每個變量和每一個表達式都有一個在編譯的時候就確定的類型。類型限制了一個變量能被賦的值,限制了一個表達式可以產生的值,限制了這些值上可以進行的操作,並確定了這些操作的含義。
強類型語言可以在編譯的時候進行更嚴格的語法檢查,從而減少編程錯誤。
聲明變量的語法如下:
type varName [=初始值];
type變量的類型。
varName 變量的名字。
後面初始值既可以指定,也可以不指定。隨之變量的作用範圍不同(成員變量和局部變量),變量還可以使用其它修飾符。不論是哪種變量,定義變量必須要指定變量類型和變量名兩個部分。
定義變量是時候,變量類型需要時java支持的類型。也就是說,當創建變量的時候,需要在內存中申請空間。
內存管理系統根據變量的類型爲變量分配存儲空間,分配的空間只能用來儲存該類型數據。
(二)java數據類型分類
每種語言都有它所支持的數據類型、運算符和控制結構。
Java語言中既有基本數據類型,又有引用數據類型,同時支持豐富的運算符。
1 基本數據類型
2 引用數據類型
我們可以看下面的圖:
(三)
整數類型:
1 byte
byte 數據類型是a8位、有符號的,以二進制補碼錶示的整數;
最小值是 -128(-2^7);
最大值是 127(2^7-1);
默認值是 0;
byte 類型用在大型數組中節約空間,主要代替整數,因爲 byte 變量佔用的空間只有 int 類型的四分之一;
2 short:
short 數據類型是 16 位、有符號的以二進制補碼錶示的整數
最小值是 -32768(-2^15);
最大值是 32767(2^15 - 1);
Short 數據類型也可以像 byte 那樣節省空間。一個short變量是int型變量所佔空間的二分之一;
默認值是 0;
3 int
int 數據類型是32位、有符號的以二進制補碼錶示的整數;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1);
int是最常用的整數類型,一般地整型變量默認爲 int 類型。
默認值是 0 ;
4 long:
long 數據類型是 64 位、有符號的以二進制補碼錶示的整數;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1);
這種類型主要使用在需要比較大整數的系統上;
默認值是 0L;
(四)浮點型
浮點型的數就是通常所說的實數。在Java中有兩種浮點類型的數據:float型和double型。這兩種類型的數據在JVM中所佔的位數不同,float型佔32位,double型佔64位。因此,通常將float型稱爲單精度浮點型,將double型稱爲雙精度浮點型。它們符合IEEE-754標準。
1 float:
float 數據類型是單精度、32位、符合IEEE 754標準的浮點數;
float 在儲存大型浮點數組的時候可節省內存空間;
默認值是 0.0f;
對於float型數值,第一位是符號位,接下來8位表示指數,在接下來的23位表示位數。
浮點數不能用來表示精確的值,如貨幣;
2 double:
double 數據類型是雙精度、64 位、符合IEEE 754標準的浮點數;
浮點數的默認類型爲double類型;
對於double型數值,第1位是符號位,接下來11位表示指數,在接下來的52位表示位數。
double類型同樣不能表示精確的值,如貨幣;
默認值是 0.0d;
System.out.println(f1);
3 特殊的浮點數值
正無窮大:POSITIVE_INFINITY
負無窮大:NEGATIVE_INFINITY
非數:NAN P54也讀一下:
(五)boolean:
1
boolean數據類型只有一個boolean類型,表示一位的信息,用來表示邏輯的真或者假。
只有兩個取值:true 和 false;不能用0或者非0來代表。其它基本數據類型的值也不能轉換成爲boolean型。
雖然Booleanl類型的值僅僅需要一位,大部分計算機在分配內存的時候分了最小的內存單元一個字節,也就是8位。
這種類型只作爲一種標誌來記錄 true/false 情況;
默認值是 false;
char:
Java語言使用Unicode(統一碼)爲字符編碼,它是由Unicode Consortium建立的一種編碼方案。char類型是一個單一的 16 位 Unicode 字符;新版Unicode 4.0標準使用UTF-16爲字符編碼,可以表示更多的字符,它可以表示世界各國的語言符號,包括希臘語、阿拉伯語、日語以及漢語等。ASCII碼字符集是Unicode字符集子集。
java語言裏面:
最小值是 \u0000(即爲0);
最大值是 \uffff(即爲65,535);
char 數據類型用來儲存字符;
字符型值的表示:
1 直接通過單個字符來指定字符型值。
2 通過轉義字符表示特殊字符型值。
3 直接使用unicode值來表示字符型值,格式’\uXXXX’,其中XXXX代表一個16進制的整數。
字符型變量使用char定義,在內存中佔16位,表示的數據範圍是0~65535。