一般地,當需要使用數字的時候,我們通常使用內置數據類型,如:byte、int、long、double等。
int i = 5000;
float gpa = 13.65;
byte mask = 0xaf;
然而,在實際開發過程中,我們經常會遇到需要使用對象,而不是內置數據類型的情形。為了解決這個問題,Java語言為每一個內置數據類型提供了對應的包裝類。
所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類Number的子類。
Paste_Image.png
這種由編譯器特別支持的包裝稱為裝箱,所以當內置數據類型被當作對象使用的時候,編譯器會把內置類型裝箱為包裝類。相似的,編譯器也可以把一個對象拆箱為內置類型。Number類屬于java.lang包。
下面是一個裝箱與拆箱的例子:
public class Test{
public static void main(String args[]){
Integer x = 5; // boxes int to an Integer object
x = x + 10; // unboxes the Integer to a int
System.out.println(x);
}
}
Paste_Image.png
Paste_Image.png
public class OverClass{
public static void main(String[] args) {
// Integer 兩個構造方法
Integer a = new Integer(3);
Integer b = new Integer("123");// NumberFormatException
System.out.println(a);
System.out.println(b);
int ab = a+b;
System.out.println(ab);
String [] str = {"1","23","43"};
int sum = 0;
for (int i = 0;i < str.length ;i++ ) {
int m = Integer.parseInt(str[i]);
sum += m;
}
System.out.println(sum);
String age = Integer.toString(21);
String binary = Integer.toBinaryString(21);
System.out.println("二進制:"+binary);
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
int intSize = Integer.SIZE;
System.out.println(max);
System.out.println(min);
System.out.println(intSize);
int result = Integer.compare(4,5);
System.out.println("比較結果:"+result);
int resultAnother = a.compareTo(b);
System.out.println("比較結果2:"+resultAnother);
// Boolean 提供了3個常量
Boolean b1 = new Boolean(true);
Boolean b2 = new Boolean("ok");
Boolean b3 = new Boolean("FALSE");
System.out.println("b1:"+b1);
System.out.println("b2:"+b2);
System.out.println("b3:"+b3);
System.out.println("b3取反:"+!b3);
boolean resultB = b1.equals(b2);
System.out.println("Boolean比較:"+resultB);
// Character
Character char1 = new Character('A');
Character char2 = new Character('B');
Character char3 = new Character(' ');
System.out.println("大寫:"+Character.isUpperCase(char1));
System.out.println("大寫:"+Character.isLowerCase(char2));
System.out.println("white Space:"+Character.isWhitespace(char3));
}
}