8種資料類型
資料類型 | 位數 | 預設值 | 取值範圍 | 示例 |
---|---|---|---|---|
byte(位) | 8 | -2^7 - 2^7-1 | byte b = 1 | |
short(短整型) | 16 | -2^15 - 2^15-1 | short s = 5 | |
int(整型) | 32 | -2^31 - 2^31-1 | int i = 10 | |
long(長整型) | 64 | -2^63 - 2^63-1 | long l = 10l | |
float(單精度浮點型) | 32 | -2^31 - 2^31-1 | float f = 10.0f | |
double(雙精度浮點型) | 64 | -2^63 - 2^63-1 | double d = 10.0d | |
char(字元) | 16 | 空 | 0 - 2^16-1 | char c = ‘c’ |
boolean(布爾值) | 8 | false | true、false | boolean f = false |
代碼示例:
package com.ce.test;
class Test {
static byte b;
static short s;
static int i;
static long l;
static float f;
static double d;
static char c;
static boolean bo;
public static void main(String[] args) {
System.out.println("byte的大小:"+Byte.SIZE
+";預設值:"+b
+";資料範圍:"+Byte.MIN_VALUE+" - "+Byte.MAX_VALUE);
System.out.println("short的大小:"+Short.SIZE
+";預設值:"+s
+";資料範圍:"+Short.MIN_VALUE+" - "+Short.MAX_VALUE);
System.out.println("int的大小:"+Integer.SIZE
+";預設值:"+i
+";資料範圍:"+Integer.MIN_VALUE+" - "+Integer.MAX_VALUE);
System.out.println("long的大小:"+Long.SIZE
+";預設值:"+l
+";資料範圍:"+Long.MIN_VALUE+" - "+Long.MAX_VALUE);
System.out.println("float的大小:"+Float.SIZE
+";預設值:"+f
+";資料範圍:"+Float.MIN_VALUE+" - "+Float.MAX_VALUE);
System.out.println("double的大小:"+Double.SIZE
+";預設值:"+d
+";資料範圍:"+Double.MIN_VALUE+" - "+Double.MAX_VALUE);
System.out.println("char的大小:"+Character.SIZE
+";預設值:"+c
+";資料範圍:"+Character.MIN_VALUE+" - "+Character.MAX_VALUE);
System.out.println("boolean的大小:"+Byte.SIZE
+";預設值:"+bo
+";資料範圍:"+Byte.MIN_VALUE+" - "+Byte.MAX_VALUE);
}
}

此處為什麼輸出char的資料範圍不是0 - 65535呢?
Java中的char類型由兩個位元組即十六位來表示,因為是無符号數,是以為2的16次方,數值範圍就為:0 - 2^16-1;
類型轉換:
char–> 自動轉換:byte–>short–>int–>long–>float–>double 強制轉換:①會損失精度,産生誤差,小數點以後的數字全部舍棄。②容易超過取值範圍。