Java基本數據的拆、裝箱操作(unboxing&autoboxing)

1 實例

(1)演示基本拆裝箱操作的程序AutoUnbox.java

public class AutoUnbox {
	public static void main(String[] args){
		Integer data11=new Integer(10);//int類型轉換爲對象
		Integer data12=new Integer(10);
		Integer data21=Integer.valueOf(10);//int類型轉換成對象
		Integer data22=Integer.valueOf(10);
		Integer data31=20;//自動裝箱方式實現int轉換成對象
		Integer data32=20;
		int sum1=data11+20;//自動拆箱實現對象轉換成int
		int sum2=data31+20;
		//輸出sum1和sum2
		System.out.println("sum1的值是"+sum1);
		System.out.println("sum2的值是"+sum2);
		//查看是否引用同一對象
		System.out.println("data11和data12是否是同一對象"+(data11==data12));
		System.out.println("data21和data22是否是同一對象"+(data21==data22));
		System.out.println("data31和data32是否是同一對象"+(data31==data32));
	}
}
運行結果:

sum1的值是30
sum2的值是40
data11和data12是否是同一對象false
data21和data22是否是同一對象true
data31和data32是否是同一對象true

(2)修改AutoUnbox.java類中數值大小

NumberTest.java

public class NumberTest {
	public static void main(String[] args){
		//int類型轉換爲對象
		Integer data21=Integer.valueOf(127);
		Integer data22=Integer.valueOf(127);
		Integer data211=Integer.valueOf(128);
		Integer data221=Integer.valueOf(128);
		//創建Integer類型對象
		Integer data31=-128;
		Integer data32=-128;
		Integer data311=-129;
		Integer data321=-129;		
		//查看是否引用同一對象
		System.out.println("data21和data22是否是同一對象"+(data21==data22));
		System.out.println("data211和data221是否是同一對象"+(data211==data221));
		System.out.println("data31和data32是否是同一對象"+(data31==data32));
		System.out.println("data31和data32是否是同一對象"+(data311==data321));
	}
}
運行結果:

data21和data22是否是同一對象true
data211和data221是否是同一對象false
data31和data32是否是同一對象true
data31和data32是否是同一對象false

2 實例說明

(1)AutoUnbox.java中將int基本數據類型轉換爲Integer對象可以通過三種方式實現:新建Integer類(new Integer())、Integer類的valueOf方法(Integer.valueOf())和自動裝箱操作(Integer data31=20);

(2)int sum1=data11+20實現對象data11與基本數據類型int類型20相加。首先將對象data11自動轉換成int即所謂的拆箱操作,然後才能實現與20相加。
(3)AutoUnbox.java中對象data11與data12之所以不是引用同一個對象時因爲這兩個對象都是通過new來創建。但是data21與data22是通過Integer.valueOf()方法返回同一個數值的引用。data31和data32通過自動裝箱操作返回同一個數值的引用。

(4)NumberTest.java中演示瞭如果數值介於基本數據類型之間,則相應對象會引用同一個類型;否則相反。如int範圍-128~127,超出則在Integer裝箱時候就不會引用同一個對象。


3 基本數據的拆、裝箱操作說明

(1)目的是爲了解決基本數據類型和相應的對象之間的轉換問題。






發佈了33 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章