java包裝類wrapper class
/**
* 測(cè)試包裝類 wrapper class
* byte short int long float double char boolean八種數(shù)據(jù)類型
* Byte Short Integer Long Float Double Character Boolean對(duì)應(yīng)八個(gè)包裝類
*/
public class TestWrapper {
? ?public static void main(String[] args) {
? ? ? ?Integer i0 = 1;
? ? ? ?//直接賦值
? ? ? ?Integer i1 = Integer.valueOf(1);
? ? ? ?//通過(guò)Integer靜態(tài)方法valueOf(int)賦值
? ? ? ?Integer i2 = Integer.valueOf("1");
? ? ? ?//valueOf(String)
? ? ? ?//valueOf()方法生成一個(gè)Integer對(duì)象 i1 i2為引用類型變量
? ? ? ?System.out.println(i1.shortValue());
? ? ? ?Short s1 = i1.shortValue();
? ? ? ?//包裝類中存在屬性value 用來(lái)存儲(chǔ)數(shù)值 將數(shù)據(jù)類型轉(zhuǎn)為包裝類時(shí) 原本的值會(huì)保存在value中
? ? ? ?//shortValue()將i1.value強(qiáng)制轉(zhuǎn)換為short并返回 i1不發(fā)生變化
? ? ? ?Byte b1 = s1.byteValue();
? ? ? ?Long l1 = b1.longValue();
? ? ? ?Double d1 = l1.doubleValue();
? ? ? ?Float f1 = d1.floatValue();
? ? ? ?//六種類型可以相互轉(zhuǎn)換 六個(gè)類都extends Number抽象類
? ? ? ?int a = i1.intValue();
? ? ? ?//因?yàn)榉祷氐氖莢alue的值 將這個(gè)值賦給數(shù)據(jù)類型的變量即完成包裝類向基本數(shù)據(jù)類型的轉(zhuǎn)化
? ? ? ?Integer i3 = Integer.parseInt("1");
? ? ? ?//parse解析 輸入字符串轉(zhuǎn)換成 Integer類的對(duì)象 字符串的數(shù)值賦值給對(duì)象的value屬性 返回對(duì)象將地址賦值給i3引用類型變量
? ? ? ?String str1 = i3.toString();
? ? ? ?//Integer類重寫的toString 將i3的value轉(zhuǎn)化為字符串返回給str1
? ? ? ?System.out.println(Integer.MIN_VALUE+"包裝類中保存了基本數(shù)據(jù)類型的最大/小值作為常量"+Integer.MAX_VALUE);
? ? ? ?//MAX_VALUE 0x7fffffff 16進(jìn)制 int類型4個(gè)字節(jié) 每個(gè)字節(jié)8位 總共32位 第一位表示正負(fù) ?32位二進(jìn)制數(shù)字即32位0或1 ?16=2^4 一個(gè)十六進(jìn)制位等于4個(gè)二進(jìn)制位
? ? ? ?// 二進(jìn)制轉(zhuǎn)為十六進(jìn)制 每四位數(shù)轉(zhuǎn)化為一個(gè)十六進(jìn)制數(shù)字 32位/4總共需要8位十六進(jìn)制數(shù)字來(lái)表示
? ? ? ?//32位的第一位表示正負(fù) 所以第一組4位二進(jìn)制數(shù)字最大值是0111即7 之后每組最大都是1111即f
? ? ? ?//負(fù)數(shù)的第一位是1 后面是多少就是負(fù)多少 全為1時(shí)即0xffffffff 絕對(duì)值和0x7fffffff一樣 2^31-1
? ? ? ?//硬性規(guī)定第一位1之后全0是最小值 比0xffffffff小1 即-2^31
? ?}
}