標籤:
Java 是一種“強型別”的語言,聲明變數時必須指明資料類型。變數(variable)佔據一定的記憶體空間。不同類型的變數佔據不同的大小。
Java中共有8種基礎資料型別 (Elementary Data Type),包括4 種整型、2 種浮點型、1 種字元型、1 種布爾型,請見下表。
Java基礎資料型別 (Elementary Data Type)
資料類型 |
說明 |
所佔記憶體 |
舉例 |
備忘 |
byte |
位元組型 |
1 byte |
3, 127 |
|
short |
短整型 |
2 bytes |
3, 32767 |
|
int |
整型 |
4 bytes |
3, 21474836 |
|
long |
長整型 |
8 bytes |
3L, 92233720368L |
long最後要有一個L字母(大小寫無所謂)。 |
float |
單精確度浮點型 |
4 bytes |
1.2F, 223.56F |
float最後要有一個F字母(大小寫無所謂)。 |
double |
雙精確度浮點型 |
8 bytes |
1.2, 1.2D, 223.56, 223.56D |
double最後最好有一個D字母(大小寫無所謂)。 |
char |
字元型 |
2 bytes |
‘a‘, ‘A’ |
字元型資料只能是一個字元,由單引號包圍。 |
boolean |
布爾型 |
1 bit |
true, false |
|
對於整型資料,通常情況下使用 int 類型。但如果表示投放廣島長崎的原子彈釋放出的能量,就需要使用 long 類型了。byte 和 short 類型主要用於特定的應用場合,例如,底層的檔案處理或者需要控制佔用儲存空間量的大數組。
在Java中,整型資料的長度與平台無關,這就解決了軟體從一個平台移植到另一個平台時給程式員帶來的諸多問題。與此相反,C/C++ 整型資料的長度是與平台相關的,程式員需要針對不同平台選擇合適的整型,這就可能導致在64位系統上穩定啟動並執行程式在32位系統上發生整型溢出。
八進位有一個首碼 0,例如 010 對應十進位中的 8;十六進位有一個首碼 0x,例如 0xCAFE;從 Java 7 開始,可以使用首碼 0b 來表示位元據,例如 0b1001 對應十進位中的 9。同樣從 Java 7 開始,可以使用底線來分隔數字,類似英文數字寫法,例如 1_000_000 表示 1,000,000,也就是一百萬。底線只是為了讓代碼更加易讀,編譯器會刪除這些底線。
另外,不像 C/C++,Java 不支援無符號類型(unsigned)。
float 類型有效數字最長為 7 位,有效數字長度包括了整數部分和小數部分。例如:
1 float x = 223.56F;2 float y = 100.00f;
注意:每個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 的精度很難滿足需求。
不同資料類型應用舉例:
public class Demo { public static void main(String[] args){ // 字元型 char webName1 = ‘博‘; char webName2 = ‘客‘; char webName3 = ‘園‘; System.out.println("網站的名字是:" + webName1 + webName2 + webName3); // 整型 short x=22; // 十進位 int y=022; // 八進位 long z=0x22L; // 十六進位 System.out.println("轉化成十進位:x = " + x + ", y = " + y + ", z = " + z); // 浮點型 float m = 22.45f; double n = 10; System.out.println("計算乘積:" + m + " * " + n + "=" + m*n); }}
運行結果:
網站的名字是:部落格園
轉化成十進位:x = 22, y = 18, z = 34
計算乘積:22.45 * 10.0=224.50000762939453
從運行結果可以看出,即使浮點型資料只有整數沒有小數,在控制台上輸出時系統也會自動加上小數點,並且小數位全部置為 0。
對布爾型的說明
如果你有編程經驗,瞭解布爾型,請跳過下面的教程,下面的教程針對只有C語言基礎的讀者(C語言沒有布爾型)。
在C語言中,如果判斷條件成立,會返回1,否則返回0,例如:
1 #include <stdio.h>2 int main(){3 int x = 100>10;4 int y = 100<10;5 printf("100>10 = %d\n", x);6 printf("100<10 = %d\n", y);7 return 0;8 }
運行結果:
100>10 = 1
100<10 = 0
但是在Java中不一樣,條件成立返回 true,否則返回 false,即布爾類型。例如:
1 public class Demo { 2 public static void main(String[] args){ 3 // 字元型 4 boolean a = 100>10; 5 boolean b = 100<10; 6 System.out.println("100>10 = " + a); 7 System.out.println("100<10 = " + b); 8 if(a){ 9 System.out.println("100<10是對的");10 }else{11 System.out.println("100<10是錯的");12 }13 }14 }
運行結果:
100>10 = true
100<10 = false
100<10是對的
實際上,true 等同於1,false 等同於0,只不過換了個名稱,並單獨地成為一種資料類型。
系列文章:
Java知多少(1)語言概述
Java知多少(2)虛擬機器(JVM)以及跨平台原理
Java知多少(3) 就業方向
Java知多少(4)J2SE、J2EE、J2ME的區別
Java知多少(5) Java開發環境的搭建
Java知多少(6)第一個程式樣本
Java知多少(7)類與對象
Java知多少(8)類庫及其組織圖
Java知多少(9) import及Java類的搜尋路徑
Java知多少(10)資料類型及變數
Java知多少(10)資料類型及變數