Java基本数据的拆、装箱操作(unboxing&autoboxing)

来源:互联网 发布:网络泄露个人隐私 编辑:程序博客网 时间:2024/06/06 02:19

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;//自动拆箱实现对象转换成intint sum2=data31+20;//输出sum1和sum2System.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的值是30sum2的值是40data11和data12是否是同一对象falsedata21和data22是否是同一对象truedata31和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是否是同一对象truedata211和data221是否是同一对象falsedata31和data32是否是同一对象truedata31和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)目的是为了解决基本数据类型和相应的对象之间的转换问题。






0 0
原创粉丝点击