包裝類
們在實際應用中經常需要將基本資料轉化成物件,以便于操作,比如:將基本資料型別存盤到Object[]陣列或集合中的操作等等;
Java在設計類時為每個基本資料型別設計了一個對應的類進行代表,這樣八個和基本資料型別對應的類統稱為包裝類(Wrapper Class)均位于java.lang包;

其中byte、short、integer、long、float、double是“數字型”,“數字型”都是java.lang.Number的子類,Number類是抽象類,因此它的抽象方法,所有子類都需要提供實作,Number類提供了抽象方法:intValue()、longValue()、floatValue()、doubleValue();意味著所有的“數字型”包裝類都可以互相轉型
包裝類使得基本資料型別、包裝類物件、字串之間能夠相互轉化;
包裝類的使用
public class Test {
void testInteger() {
// 基本型別轉化成Integer物件
Integer int1 = new Integer(10);
Integer int2 = Integer.valueOf(20);
// Integer物件轉化成int
int a = int1.intValue();
// 字串轉化成Integer物件
Integer int3 = Integer.parseInt("334");
Integer int4 = new Integer("999");
// Integer物件轉化成字串
String str1 = int3.toString();
// 一些常見int型別相關的常量
System.out.println(Integer.MAX_VALUE);
}
public static void main(String[] args) {
Test test = new Test();
test.testInteger();
}
}
輸出:
2147483647
自動裝箱和拆箱
自動裝箱和拆箱就是將基本資料型別和包裝類之間進行自動的互相轉換
自動裝箱
當我們輸入Integer i = 5這樣的陳述句時JVM會為我們自動執行Integer i = Integer.valueOf(5)這樣的操作(JDK1.5之后才有此功能),這就是自動裝箱;
自動拆箱
每當需要一個值時,物件會自動轉成基本資料型別,沒必要再去顯式呼叫intValue()、doubleValue()等轉型方法, 如 Integer i = 5;int j = i; 這樣的程序就是自動拆箱;
注意:
public class Main {
public static void main(String[] args) {
Integer i = null;
int j = i;
}
}
以上代碼編譯能夠通過,但是會報以下錯誤:

此錯誤為空指標例外;
因為 null表示i沒有指向任何物件的物體,但作為物件名稱是合法的,由于實際上i并沒有指向任何物件的物體,所以也就不可能操作intValue()方法,這樣上面的寫法在運行時就會出現NullPointerException錯誤;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/271648.html
標籤:java
上一篇:詳解僵尸行程、行程等待
下一篇:二分查找
