概述
在Java中有8種基本數據類型來存儲數值、字符和布爾值。
如圖:
那麼,我們就從上往下學。
整數類型
整數類型用來存儲整數數值,即沒有小數部分的數值,可以是正數也可以是負數。而且整數類型在Java中有3種表示形式,分別是十進制、八進制和十六進制。
表示形式 | 特徵 |
---|---|
十進制 | 平常用的,如:120 |
八進制 | 以0開頭,如0123 就是十進制的 83 |
十六進制 | 以0X(0x)開頭,如0X25 就是十進制的 37 |
而整數類型根據它所佔內存大小的不同,又可以分爲以下幾種:
數據類型 | 內存空間(8位等於1字節) | 取值範圍 |
---|---|---|
byte | 8位 | -128~127 |
short | 16位 | -32768~32767 |
int | 32位 | -2147483648~2147483647 |
long | 64位 | -9223372036854775808~9223372036854775807 |
其中,給long型值賦值時,後面加上L(l),如:
public static void main(String[] args) {
byte mybyte = 124 ;
short myshort = 32564;
int myint = 45784612;
long mylong = 45789451L;
long result = mybyte + myshort + myint + mylong;
System.out.println("The Result : "+result);
}
運行結果爲:
The Result : 91606751
浮點類型
浮點類型表示有小數部分的數字,Java中浮點類型分爲單精度浮點類型(float)和雙精度浮點類型(double),如下:
數據類型 | 內存空間(8位等於1字節) | 取值範圍 |
---|---|---|
float | 32位 | 1.4E-45~3.4028235E38 |
short | 64位 | 4.9E-324~1.7976931348623157E308 |
其中,在默認情況下小數都會被看做double型,若使用float型小數,則需要在小數後面加上F(f),double型小數加上D(d)(不加也不會錯)。
public static void main(String[] args) {
float f1 = 13.23f;
double d1 = 4562.12d;
double d2 = 45678.1564;
}
字符類型
字符類型(char)用於存儲單個字符,佔16位(兩個字節)的內存空間,在定義字符類型變量的時候要以單引號表示,如’S’,而”S”則表示字符串。
Java也把字符作爲整數對待,在Unicode編碼中對應位置(0~65536),如:
public static void main(String[] args) {
char word = 'd',word2 = '@';
int p = 23045,p2 = 45213;
System.out.println("d在Unicode表中的位置是:"+(int)word);
System.out.println("@在Unicode表中的位置是:"+(int)word2);
System.out.println("在Unicode表中的23045位置表示的是:"+(char)p);
System.out.println("在Unicode表中的45213位置表示的是:"+(char)p2);
}
運行結果爲:
d在Unicode表中的位置是:100
@在Unicode表中的位置是:64
在Unicode表中的23045位置表示的是:婭
在Unicode表中的45213位置表示的是:낝
其中,有個特殊的字符叫做轉義字符,它是一種特殊的字符變量,以“\”開頭,後面跟上一個或者多個字符。如下表:
轉義字符 | 含義 |
---|---|
\ddd | 1~3位八進制數據類型所表示的字符,如\456 |
\dxxxx | 4位十六進制所表示的字符,如\0052 |
\’ | 單引號字符 |
\\ | 反斜槓字符 |
\t | 垂直製表符,將光標移到下一個製表符的位置 |
\r | 回車 |
\n | 換行 |
\b | 退格 |
\f | 換頁 |
如:
public static void main(String[] args) {
char c1 = '\\';
char char1 = '\u2605';
System.out.println(c1);
System.out.println(char1);
}
運行結果爲:
\
9733
布爾類型
布爾類型又稱邏輯類型,通過關鍵字boolean來定義布爾類型變量,只有true和false兩個值,分別代表布爾邏輯中的“真”和“假”。
如:
public static void main(String[] args) {
boolean b1 = false;
boolean b = true;
}
在學習完基礎數據類型之後,我們來補充一個知識點:數據類型轉換
數據類型轉換
數據類型轉換是將一個類型更改爲另外一種類型的過程。如:將String的”456”轉換爲int的456,而且任意類型的數據都可以轉換爲String類型。
其次,如果低精度數據類型向高精度數據類型轉換,則永遠不會有溢出,並且總是成功的;而把高精度數據類型向低精度數據類型轉換必然會有信息丟失,有可能會失敗。
它有兩種方式:
- 數據類型轉換
- 隱式轉換
- 顯示轉換
隱式轉換
從高級類型到低級類型轉換的過程叫做隱式轉換,按照從高到低的順序排的話如下:
byte < short < int < long < float < double
其中,涉及到的不同類型的計算結果的類型:如下表:
操作數1的數據類型 | 操作數2的數據類型 | 轉換後的數據類型 |
---|---|---|
byte 、 short 、char | int | int |
byte 、 short 、char 、int | long | long |
byte 、 short 、char 、int 、long | float | float |
byte 、 short 、char 、int 、long 、float | double | double |
public static void main(String[] args) {
byte mybyte = 127;
int myint = 150;
float myfloat = 452.12f;
char mychar = 10;
double mydouble = 45.46546d;
System.out.println("byte和float類型數據進行運算的結果爲:"+(mybyte + myfloat));
System.out.println("byte和int類型數據進行運算的結果爲:"+(mybyte + myint));
System.out.println("byte和char類型數據進行運算的結果爲:"+(mybyte + mychar));
System.out.println("double和char類型數據進行運算的結果爲:"+(mydouble + mychar));
}
運行結果爲:
byte和float類型數據進行運算的結果爲:579.12
byte和int類型數據進行運算的結果爲:277
byte和char類型數據進行運算的結果爲:137
double和char類型數據進行運算的結果爲:55.46546
顯示轉換
就是把高精度轉換成低精度的過程,需要使用顯示類型轉換運算(又叫做強制類型轉換)。
如:(類型名)要轉換的值
public static void main(String[] args) {
int myint = (int)150.56;
long mylong = (long)452.12f;
int b = (int)'d';
System.out.println("myint:"+myint);
System.out.println("mylong:"+mylong);
System.out.println("b:"+b);
}
運行結果爲:
myint:150
mylong:452
b:100