概述
場景:通過文本框獲取用戶輸入的數(shù)字?jǐn)?shù)據(jù)塞淹,可是得到的都是字符串。 如果想要對字符串中的數(shù)字進(jìn)行運(yùn)算,必須要將字符串轉(zhuǎn)成數(shù)字。
Java中提供了相應(yīng)的解決的對象关划。 基本數(shù)據(jù)類型對象包裝類:java將基本數(shù)據(jù)類型值封裝成了對象资盅。
封裝成對象有什么好處?因?yàn)榭梢蕴峁└嗟牟僮骰緮?shù)值的功能。
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
-
基本數(shù)據(jù)類型對象包裝類特點(diǎn):
- 1,用于在基本數(shù)據(jù)和字符串之間進(jìn)行轉(zhuǎn)換。
int parseInt(string);
byte parseByte(string);
boolean parseBoolean(string);
xxx parseXxx(string);
只有Character沒有解析方法攻锰。
// System.out.println(Integer.MAX_VALUE);
// System.out.println(Integer.toBinaryString(-6));//將十進(jìn)制轉(zhuǎn)成二進(jìn)制或
// System.out.println(Integer.toHexString(-6));//將十進(jìn)制轉(zhuǎn)成十六進(jìn)制或
// System.out.println(Integer.toOctalString(-6));//將十進(jìn)制轉(zhuǎn)成八進(jìn)制或
// 1妒蛇,字符串--->基本數(shù)值。 基本數(shù)值 (字符串);演示Integer int (string);
System.out.println(Integer.parseInt("123") + 2);// NumberFormatException:
System.out.println(Integer.parseInt("a1", 16));// 可以將其他進(jìn)制轉(zhuǎn)成十進(jìn)制物臂。
// 2晋涣,基本數(shù)值---->字符串呢留凭?34+"" String.valueOf(34); Integer.toString(int);
System.out.println(34 + 5);
// 3,基本數(shù)值---->包裝對象
Integer i = new Integer(4);
Integer ii = new Integer("4");
Integer iii = Integer.valueOf(4);
// 包裝對象---->基本數(shù)值
int num = i.intValue();
自動裝箱拆箱
// int i = 4;
// Integer i = new Integer(4);
// JDK1.5以后,有了一個(gè)包裝類的新特性。目的簡化書寫,自動裝箱,
Integer i = 4;//自動裝箱。Integer i = Integer.valueOf(4);
i = i + 5;//原理;等號右邊:將i對象轉(zhuǎn)成基本數(shù)值 i.intValue() + 5;//自動拆箱禁舷。加法運(yùn)算后洁桌,再次裝箱。
//i = Integer.valueOf(i.intValue()+5);
-
自動裝箱拆箱細(xì)節(jié)
Integer a = new Integer(3);
Integer b = new Integer(3);
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
System.out.println("---------------------");
Integer x = 128;
Integer y = 128;
Integer z = 127;
Integer q = 127;
//在jdk1.5自動裝箱時(shí)敢订,如果數(shù)值在byte范圍之內(nèi)(-128~127)刃麸,不會新創(chuàng)建對象空間而是使用原來已有的空間。
System.out.println(x==y); //true
System.out.println(z==q); //false
System.out.println(x.equals(y));//true
System.out.println(z.equals(q));//true