1. 整型
整型有三張表示方式:
- 10進制 :int i = 10;
- 8進制 :int i = 013;
- 16進制 :int i = 0xaF;
2. 字符型
字符型有四種表示方式:
- 單個字符 : char c = ‘a’;
- 轉義字符 : char c = ‘\n’;
- unicode編碼: char c = ‘\u9999’;
- int : char c = 97;
3. 浮點型
浮點型有兩種表示方式:
- 10進制數 : 5.123
- 科學計數法 : 5.123E2
public class FloatTest {
public static void main(String[] args)
{
//浮點型數據必須包含小數點,否則會當作int處理
//浮點型默認是double型的,默認是64位的,所以定義float類型是,必須在最后加f表示float型
float f = 5.0f;
float af = 5.123456789f;
double df = 5.12345678987654321;
//浮點數是使用二進制數據的科學計數法表示,所以不可能精確表示一個浮點數.下面將看到的值已經發生了改變
System.out.println("af="+af);
System.out.println("df="+df);
//result:af=5.123457,df=5.123456789876543
double a = 0.0;
double c = Double.NEGATIVE_INFINITY;
float d = Float.NEGATIVE_INFINITY;
//看到float和double的負無窮大的是相等的。
System.out.println(c == d);
//0.0除以0.0將出現非數
System.out.println(a / a);
//兩個非數之間是不相等的
System.out.println(a / a == Float.NaN);
//所有正無窮大都是相等的
System.out.println(6.0 / 0 == 555.0/0);
//負數除以0.0得到負無窮大
System.out.println(-8 / a);
System.out.println(0.0 / 0.0);
//result:NaN
//下面代碼將拋出除以0的異常
System.out.println(0 / 0);
}
}
4. 布爾型
只能是"true"或"false",不能和其他基本數據類型相轉換
5. 類型轉換
a. 自動類型轉換
數據范圍小的變量或數值可以直接賦給數據范圍大的變量或數值,系統可以自動轉換
b. 強制類型轉換
類似將一個大瓶子的水倒入一個小瓶子中,如果大瓶子中的水過多,將可能導致溢出.
代碼清單:強制類型轉換
public class Conversion {
/**
* @param args
*/
public static void main(String[] args) {
/*
* int是32位的,例如233:
* 0000 0000 0000 0000 0000 0000 1110 1001
* 將int賦給byte,byte是8位的,所以會將前面的24截取掉,變成了
* 1110 1001
* 整數在計算機中是以補碼的形式保存的,正數的補碼和原碼相同,負數的補碼是原碼取反加1,最高位不變.所以
* 11101001
* | 減1,成反碼
* 11101000
* | 取反成原碼
* 10010111 也就是-23
*/
int intValue = 233;
byte byteValue = (byte)intValue;
System.out.println(byteValue);
double doubleValue = 3.98;
int intValue1 = (int)doubleValue;
System.out.println(intValue1);
}
}