java是一種強類型的編程語言,也就是說我們需要爲每一個變量都聲明一種類型。java爲我們的提供了8種基本數據類型(primitive type);包含四種整形(byte,short,int,long)、兩種浮點型(float,double)、一種用於表示Unicode 編碼的字符單元的字符類型 char 和 一 種用於表示真值的 boolean 類型。
整形:
整形用以表達沒有小數的數值,在java中共有四種整形,服務於不同的應用場景及數值長度。他們的範圍及儲存需求也不盡相同,如下圖所示
通常情況下,‘int’型 是我們最爲常用的類型,它可以滿足我們大部分的需求(正負21億),但如果我們需要處理一些更爲龐大的述職(如 地球上的總人數 )時就需要使用'long'型了,當我們聲明一個‘long’類型的變量時,需要在其數值後面加一個後綴‘L’或‘l’,當然由於小寫的‘l’容易與‘1’混淆,從而造成誤解,這裏建議大家儘量使用大寫的‘L’ 。
// long 型 的聲明
long longNumber =20000000000L;
long longNumber1 =20000000000l;
除了我們常用的十進制之外,我們仍還以用整形來表示一些其他進制的數值,但其在數值的前面添加一個前綴來用以判斷他的進制;如下例。
//從JAVA7 二進制變量的聲明以0b 或OB 爲前綴
int a=0b101011;
System.out.println("該二進制數的值爲:"+a);
//可以爲數字字面量加下劃線來使數值更讓人易讀,JAVA編譯器會去除這些下劃線
int a1=1_010_101;
System.out.println("加下劃線二進制數的值爲:"+a1);
int a2=0b1_010_101;
System.out.println("ob+加下劃線二進制數的值爲:"+a2);
//八進制變量的聲明以0爲前綴;
int b = 012; //聲明八進制變量
System.out.println("該八進制數的值爲:"+b);
// 十六進制變量的聲明以0x爲前綴。
int c = 0x11; //聲明十六進制變量
System.out.println("該十六進制數的值爲:"+c);
控制檯輸出,如下圖:
浮點類型:
java提供了兩種基本數據類型用以表示不同精度的含有小數部分的數值(float、double)
double 表示這種類型的數值精度是 float 類型的兩倍(有人稱之爲雙精度數值)。大部分情況下我們都使用 double 類型來表示一個浮點值,float 類型的數值有一個後綴 F 或 f (例如, 3.14F)。double 類型的數值有一個後綴 D 或 d。當存在一個沒有後綴小數時,我們將其默認爲 double 類型
float a=3.14f;
double b=3.1415d;
double c=3.1415;
char 類型
有時也被稱爲字符型,原本用於表示單個字符,但現在一些 Unicode 字符則需要兩個 char 值來表示,通常使用單括號括住一個字符來表示一個char ,一個char可以表示一個字符、或一個轉義字符,也可以便是一個Unicode 編碼;如下例。
//表示單個字符
char char1='A';
char char2='啊';
System.out.println("表示單個字符:"+char1+" , "+char2);
//表示轉義字符
char char3='\\';
System.out.println("表示轉義字符斜槓\\:"+char3);
// 表示Unicode編碼
//設計 Java 時採用了 16 位的 Unicode 字符集
char char4='\u66f9';
System.out.println("表示Unicode編碼:"+char4);
值得一提的是,在java設計時採用了16位的Unicode 字符集。然而很遺憾的是,經過了一段時間,加入了大量的漢語、日語、漢語等字符後16 位的 char 類型已經不能滿足描述所有 Unicode 字符的需要了;所以在java5 後char 類型描述了 UTF-16 編碼中的一個代碼單元。建議不要在程序中使用 char 類型, 除非確實需要處理 UTF-16 代碼單元。最好將字符串作爲抽象數據類型處理。
boolean 類型
也叫布爾型,它只有兩個值,false 和 true, 其用來判定邏輯條件, 整型值和布爾值之間不能進行相互轉換。
boolean a=true;