1. 程式人生 > >Java學習-day01

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

單精度,32位,default = 0.0f 6.double 雙精度,64位,default = 0.0d 7.boolean 表示一位的資訊,只有兩個取值:true 和 false;default = false 8.char 單一的 16 位 Unicode 字元,[\u0000,\uffff] = [0,65535]

引用資料型別: 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 資料型別轉換必須滿足如下規則:

  1. 不能對boolean型別進行型別轉換。

  2. 不能把物件型別轉換成不相關類的物件。

  3. 在把容量大的型別轉換為容量小的型別時必須使用強制型別轉換。

  4. 轉換過程中可能導致溢位或損失精度,例如:

int i =128;   
byte b = (byte)i;

因為 byte 型別是 8 位,最大值為127,所以當 int 強制轉換為 byte 型別時,值 128 時候就會導致溢位。

  1. 浮點數到整數的轉換是通過捨棄小數得到,而不是四捨五入,例如:
(int)23.7 == 23;        
(int)-45.89f == -45