1. 程式人生 > >3)java基本資料型別(常量、轉換)

3)java基本資料型別(常量、轉換)

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。