Java學習-day01
Java的兩大資料型別:內建資料型別和引用資料型別
內建資料型別: Java語言提供了八種基本型別。六種數字型別(四個整數型,兩個浮點型),一種字元型別,還有一種布林型。
1.byte 8位, [-2^7,2^7-1] = [-128,127],default = 0 2.short 16位, [-2^15,2^15-1] = [-32768,32767],default = 0 3.int 32位, [-2^31,2^31-1] = [-2147483648,2147483647],default = 0 4.long 64位, [-2^63,2^63-1] = [ -922337203685477508,922337203685477507],default = 0L (”L”理論上不分大小寫,但是若寫成”l”容易與數字”1”混淆,不容易分辯。所以最好大寫。) 5.float
引用資料型別: 1.在Java中,引用型別的變數非常類似於C/C++的指標。引用型別指向一個物件,指向物件的變數是引用變數。這些變數在宣告時被指定為一個特定的型別,比如 Employee、Puppy 等。變數一旦聲明後,型別就不能被改變了。 2.物件、陣列都是引用資料型別。 3.所有引用型別的預設值都是null。 4.一個引用變數可以用來引用任何與之相容的型別。
包括陣列,集合ArrayList,String,Scanner,Random,自定義型別
Java常量 常量在程式執行時是不能被修改的。 在 Java 中使用 final 關鍵字來修飾常量,宣告方式和變數類似:
final double PI = 3.1415927;
雖然常量名也可以用小寫,但為了便於識別,通常使用大寫字母表示常量。 字面量可以賦給任何內建型別的變數
byte a = 68;
char a = 'A'
byte、int、long、和short都可以用十進位制、16進位制以及8進位制的方式來表示。 當使用常量的時候,字首 0 表示 8 進位制,而字首 0x 代表 16 進位制
int decimal = 100;
int octal = 0144;
int hexa = 0x64;
和其他語言一樣,Java的字串常量也是包含在兩個引號之間的字元序列。下面是字串型字面量的例子:
"Hello World"
"two\nlines"
"\"This is in quotes\""
字串常量和字元常量都可以包含任何Unicode字元。例如:
char a = '\u0001';
String a = "\u0001";
Java語言支援一些特殊的轉義字元序列。
\n 換行 (0x0a)
\r 回車 (0x0d)
\f 換頁符(0x0c)
\b 退格 (0x08)
\0 空字元 (0x20)
\s 字串
\t 製表符
\" 雙引號
\' 單引號
\\ 反斜槓
\ddd 八進位制字元 (ddd)
\uxxxx 16進位制Unicode字元 (xxxx)
自動型別轉換
整型、實型(常量)、字元型資料可以混合運算。運算中,不同型別的資料先轉化為同一型別,然後進行運算。
轉換從低階到高階。
低 ————————————> 高
byte,short,char—> int —> long—> float —> double 資料型別轉換必須滿足如下規則:
不能對boolean型別進行型別轉換。
不能把物件型別轉換成不相關類的物件。
在把容量大的型別轉換為容量小的型別時必須使用強制型別轉換。
轉換過程中可能導致溢位或損失精度,例如:
int i =128;
byte b = (byte)i;
因為 byte 型別是 8 位,最大值為127,所以當 int 強制轉換為 byte 型別時,值 128 時候就會導致溢位。
- 浮點數到整數的轉換是通過捨棄小數得到,而不是四捨五入,例如:
(int)23.7 == 23;
(int)-45.89f == -45