3)java基本資料型別(常量、轉換)
阿新 • • 發佈:2018-11-27
java基本資料型別
- 變數的作用:申請記憶體來儲存值。(申請什麼型別的變數就只能儲存什麼型別的變數)
- java兩大資料型別:
內建資料型別
引用資料型別
內建資料型別
- 共8種
6種數字型別(四個整型、兩個浮點型)
1種字元型別
1種浮點型別
字元 | 名稱 | 位數 | 位元組 | 範圍 | 預設值 | 補充 |
---|---|---|---|---|---|---|
byte | * | 8 | 1 | -128~127 | 0 | java中最小的資料型別 |
short | 短整型 | 16 | 2 | -32768~32717 | 0 | * |
int | 整形 | 32 | 4 | -2^31~ 2^31-1 | 0 | 一般整形預設是int |
long | 長整形 | 64 | 8 | -2^63~ 2^63-1 | 0L | 這種型別主要使用在需要比較大整數的系統上 |
float | 浮點型 | 32 | 4 | * | 0.0f | 用於儲存帶小數點的數字(與double的區別在於float型別有效小數點只有6~7位) |
double | 雙精度浮點型 | 64 | 8 | * | 0.0d | 浮點數的預設型別為double型別;用於儲存帶有小數點的數字 |
char | 字元型 | 16 | 2 | 0~65535 | 空 | 用於儲存單個字元 |
boolean | 布林型別 | 1 | true、false | false | 用於判斷真或假(僅有兩個值,即true、false) |
引用資料型別
- 在Java中,引用型別的變數非常類似於C/C++的指標。引用型別指向一個物件,指向物件的變數是引用變數。這些變數在宣告時被指定為一個特定的型別,比如 Employee、Puppy 等。變數一旦聲明後,型別就不能被改變了。
- 物件、陣列都是引用資料型別。
- 所有引用型別的預設值都是null。
- 一個引用變數可以用來引用任何與之相容的型別。
例子:Site site = new Site(“Runoob”)。
java常量
- final修飾常量
- 常量不可以被修改
- 常量宣告方式:(常量一般用大寫,習慣、便於區分)
final double PI = 3.1415927;
- byte、int、long、和short都可以用十進位制、16進位制以及8進位制的方式來表示。
當使用常量的時候,字首 0 表示 8 進位制,而字首 0x 代表 16 進位制,。
例如:
int decimal = 100;
int octal = 0144;
int hexa = 0x64;
- 字串常量和字元常量都可以包含任何Unicode字元
例如:
char a = '\u0001';
String a = "\u0001";
型別轉換
- 分類:自動型別轉換、強制型別轉換、隱含型別轉換
- 不能對boolean型別進行型別轉換。
- 不能把物件型別轉換成不相關類的物件。
- 在把容量大的型別轉換為容量小的型別時必須使用強制型別轉換。
- 轉換過程中可能導致溢位或損失精度
- 浮點數到整數的轉換是通過捨棄小數得到,而不是四捨五入
自動型別轉換
- 必須滿足轉換前的資料型別的位數要低於轉換後的資料型別,例如: short資料型別的位數為16位,就可以自動轉換位數為32的int型別,同樣float資料型別的位數為32,可以自動轉換為64位的double型別。
char c1='a';//定義一個char型別
int i1 = c1;//char自動型別轉換為int(沒有使用強制轉換)
System.out.println("char自動型別轉換為int後的值等於"+i1);
強制型別轉換
- 條件是轉換的資料型別必須是相容的。
- 格式:(type)value , type是要強制型別轉換後的資料型別
int i1 = 123;
byte b = (byte)i1;//強制型別轉換為byte
System.out.println("int強制型別轉換為byte後的值等於"+b);
隱含型別轉換
- 整數的預設型別是 int。
- 浮點型不存在這種情況,因為在定義 float 型別時必須在數字後面跟上 F 或者 f。