Java是一種靜態類型語言,其數據類型在編譯時就確定,而非在運行時動態確定。數據類型是Java語言重要的基礎,它決定了所能夠存儲的數據種類和範圍。Java基礎類型包括八種原始類型和引用類型。
一、八種原始類型
Java提供了八種基本數據類型,其中有四種整型、兩種浮點數類型、一種用於表示Unicode編碼的字元單元的字元型,以及一種用於表示真值的布爾型。
1、整數類型
Java提供了四種整數類型,分別是byte、short、int和long。其所佔位元組數分別為1、2、4和8個位元組。這些類型都有其各自的範圍,在不同的情況下選擇不同的類型可以使程序更加高效。
byte類型
byte類型是最小的整數類型,它佔用1個位元組,其取值範圍是-128到127。我們可以使用byte類型來節省內存,比如在網路傳輸、文件存儲等需要限制數據大小的場合。
byte b = 127; System.out.println(b); // 127
short類型
short類型是比byte類型更大的整數類型,它佔用2個位元組,其取值範圍是-32768到32767。我們也可以使用short類型來節省內存。
short s = 32767; System.out.println(s); // 32767
int類型
int類型是Java中使用最廣泛的整數類型,它佔用4個位元組,其取值範圍是-2147483648到2147483647。
int i = 2147483647; System.out.println(i); // 2147483647
long類型
long類型是比int類型更大的整數類型,它佔用8個位元組,其取值範圍是-9223372036854775808到9223372036854775807。在需要存儲很大的整數時,我們可以使用long類型。
long l = 9223372036854775807L; System.out.println(l); // 9223372036854775807
2、浮點數類型
Java提供了兩種浮點數類型,float和double。在計算機內部,浮點數採用二進位科學計數法表示,可以表示非常大或非常小的數字,但卻沒有精確的表示方式。
float類型
float類型是單精度浮點數類型,它佔用4個位元組。其有效位數為大約6~7位,可以表示的值的範圍為3.4e-45到3.4e+38。
float f = 3.14f; System.out.println(f); // 3.14
double類型
double類型是雙精度浮點數類型,它佔用8個位元組,比float類型精度更高。其有效位數為大約15位,可以表示的值的範圍為4.9e-324到1.8e+308。
double d = 2.718281828459045; System.out.println(d); // 2.718281828459045
3、字元類型
char類型是Java中用來表示Unicode編碼的字元的類型,它佔用2個位元組,可以表示65535個字元。Java中使用單引號表示字元。
char c = 'a'; System.out.println(c); // a
4、布爾類型
boolean類型是Java中用來表示布爾值的類型,它只有兩個值:true和false。
boolean b = true; System.out.println(b); // true
二、自動類型轉換和強制類型轉換
在Java中,八種基本數據類型之間可以進行自動類型轉換。當一個低精度類型的值被賦值給一個高精度類型的變數時,Java會自動進行類型轉換。反過來,將一個高精度類型的值賦值給一個低精度類型的變數時,需要使用強制類型轉換。
1、自動類型轉換
自動類型轉換是指Java自動將一個低精度類型的值轉換為高精度類型的值。當Java需要將一個較小的類型參數傳遞給一個較大的參數時,Java會自動將小類型轉換為大類型。
int i = 10; double d = i; System.out.println(d); // 10.0
2、強制類型轉換
強制類型轉換是指將一個高精度類型的值強制轉換為低精度類型的值。在Java中,當需要將一個大的類型轉換為一個更小的類型時,可以使用強制類型轉換。需要注意的是,強制類型轉換可能會造成精度的損失。
double d = 3.14; int i = (int)d; System.out.println(i); // 3
三、參考文獻
1、《Java核心技術 卷I》
2、Java官網 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150384.html