Java中主要有八種基本資料型別:byte、short、int、long、float、double、boolean、char。
各種資料型別作用:
1、byte:
8位、有符號的以二進位制補碼錶示的整數。
min : -128(-2^7)。
max: 127(2^7-1)。
default: 0。
對應包裝類:Byte。
2、short:
16位、有符號的以二進位制補碼錶示的整數;
min : -32768(-2^15);
max: 32767(2^15 - 1);
default: 0;
對應包裝類:Short。
3、int:
32位、有符號的以二進位制補碼錶示的整數;
min : -2,147,483,648(-2^31);
max: 2,147,483,647(2^31 - 1);
default: 0;
對應包裝類:Integer。
4、long:
64位、有符號的以二進位制補碼錶示的整數;
min : -9,223,372,036,854,775,808(-2^63);
max: 9,223,372,036,854,775,807(2^63 -1);
default: 0;
對應的包裝類:Long。
5、float:
單精度、32位、符合IEEE 754標準的浮點數;
float 在儲存大型浮點陣列的時候可節省記憶體空間;
浮點數不能用來表示精確的值,如貨幣;
default: 0.0f;
對應的包裝類:Float。
6、double:
雙精度、64位、符合IEEE 754標準的浮點數;
浮點數的預設型別為double型別;
double型別同樣不能表示精確的值,如貨幣;
default: 0.0d;
對應的包裝類:Double。
7、char:
char型別是一個單一的 16 位 Unicode 字元;
最小值是 \u0000(即為0);
最大值是 \uffff(即為65,535);
char 資料型別可以儲存任何字元;
對應的包裝類:Character。
8、boolean:
boolean資料型別表示一位的資訊;
只有兩個取值:true 和 false;
這種型別只作為一種標誌來記錄 true/false 情況;
對應的包裝類:Boolean。
自動型別轉換:
指不需要書寫程式碼,由系統自動完成的型別轉換。由於實際開發中這樣的型別轉換很多,所以 Java 語言在設計時,沒有為該操作設計語法,而是由 JVM自動完成。
轉換規則:從儲存範圍小的型別到儲存範圍大的型別。
具體規則為:byte→short(char)→int→long→float→double
也就是說 byte 型別的變數可以自動轉換為 short 型別,示例程式碼:
byte b=10;
short sh=b;
這裡在給sh賦值時,JVM首先將b的值轉換成short型別然後再賦值給sh。
當然,在型別轉換的時候也可以跳躍,就是byte也可以自動轉換為int型別的。
注意問題:在整數之間進行型別轉換的時候數值不會發生變化,但是當將整數型別特別是比較大的整數型別轉換成小數型別的時候,由於儲存精度的不同,可能會存在資料精度的損失。
Java引用資料型別
引用資料型別建立在基本資料型別的基礎上,包括陣列、類和介面。引用資料型別是由使用者自定義,用來限制其他資料的型別。另外,Java 語言中不支援 C++ 中的指標型別、結構型別、聯合型別和列舉型別。
引用型別還有一種特殊的 null 型別。所謂引用資料型別就是對一個物件的引用,物件包括例項和陣列兩種。實際上,引用型別變數就是一個指標,只是 Java 語言裡不再使用指標這個說法。
空型別(null type)就是 null 值的型別,這種型別沒有名稱。因為 null 型別沒有名稱,所以不可能宣告一個 null 型別的變數或者轉換到 null 型別。
空引用(null)是 null 型別變數唯一的值。空引用(null)可以轉換為任何引用型別。
在實際開發中,程式設計師可以忽略 null 型別,假定 null 只是引用型別的一個特殊直接量。
注意:空引用(null)只能被轉換成引用型別,不能轉換成基本型別,因此不要把一個 null 值賦給基本資料型別的變數。