Java基本數據類型及變量定義

Java 是一種強類型的語言,聲明變量時必須指明數據類型。變量(variable)的值佔據一定的內存空間。不同類型的變量佔據不同的大小。

java的數據類型分爲基本數據類型和引用數據類型兩種。基本數據類型不涉及內存的開闢問題。

Java的引用數據類型可分爲三種:類(class)、接口(interface)、數組。

Java中共有8種基本數據類型,包括4 種整型、2 種浮點型、1 種字符型、1 種布爾型,請見下表。

Java基本數據類型
數據類型說明所佔內存數據範圍備註
byte字節型1 byte-128~127
short短整型2 bytes-32768~32767
int整型4 bytes-2147483648~2147483637
long長整型8 bytes9223372036854775807long最後要有一個L字母(大小寫無所謂)。
float單精度浮點型4 bytes-3.4E38~3.4E38float最後要有一個F字母(大小寫無所謂)。
double雙精度浮點型8 bytes-1.7E308~1.7E308double最後最好有一個D字母(大小寫無所謂)。
char字符型2 bytes0~255字符型數據只能是一個字符,由單引號包圍。
boolean布爾型1 bittrue, false

在Java中,整型數據的長度與平臺無關,這就解決了軟件從一個平臺移植到另一個平臺時給程序員帶來的諸多問題。與此相反,C/C++ 整型數據的長度是與平臺相關的,程序員需要針對不同平臺選擇合適的整型,這就可能導致在64位系統上穩定運行的程序在32位系統上發生整型溢出。


整型(byte、short、int、long)


對於整型數據,通常情況下使用 int 類型。但如果表示投放廣島長崎的原子彈釋放出的能量,就需要使用 long 類型了。byte 和 short 類型主要用於特定的應用場合,例如,底層的文件處理或者需要控制佔用存儲空間量的大數組。

八進制有一個前綴 0,例如 010 對應十進制中的 8;十六進制有一個前綴 0x,例如 0xCAFE;從 Java 7 開始,可以使用前綴 0b 來表示二進制數據,例如 0b1001 對應十進制中的 9。同樣從 Java 7 開始,可以使用下劃線來分隔數字,類似英文數字寫法,例如 1_000_000 表示 1,000,000,也就是一百萬。下劃線只是爲了讓代碼更加易讀,編譯器會刪除這些下劃線。另外,不像 C/C++,Java 不支持無符號類型(unsigned)。

整形變量常見問題:

1、int x;     //若沒有對 x 賦值,x 的值未知,不爲0,故編譯報錯。

2、int max=Integer.MAX_VALUE;     //int型變量最大值2147483647

     System.out.println(max+1);      //數據溢出,輸出-2147483648;解決方法:數據類型轉換爲Long型

3、int x = 10;

     long y = x;     //自動轉換,範圍小轉換爲範圍大類型

     int temp = (int) y;     //強制轉換,可能導致數據溢出

4、System.out.println(9/2);     //輸出結果爲4,若要得到4.5,需進行類型轉換


浮點型(float、double)


float 類型有效數字最長爲 7 位,有效數字長度包括了整數部分和小數部分。例如:

  1. float x = 223.56F;
  2. float y = 100.00f;//不加F報錯
注意:每個float類型後面都有一個標誌“F”或“f”,有這個標誌就代表是float類型。

double 類型有效數字最長爲 15 位。與 float 類型一樣,double 後面也帶有標誌“D”或“d”。例如:
  1. double x = 23.45D;
  2. double y = 422.22d;
  3. double z = 562.234;
注意:不帶任何標誌的浮點型數據,系統默認是 double 類型。

大多數情況下都是用 double 類型,float 的精度很難滿足需求。

常見問題:

1、double x=10.02;

     System.out.println(x*x);

     輸出結果100.400399999999是錯誤的,這是JDK的bug,需使用BigDecimal處理


字符型(char)


ASCII碼:大寫字母範圍:65~90。小寫字母範圍:97~122。

Java在定義中文字符時使用Unicode編碼而非ASCII編碼。例如定義中文字符:char x ='張';

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章