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
- Java基本数据的拆、装箱操作(unboxing&autoboxing)
- Java的Autoboxing and Unboxing(装箱拆箱)
- Java的自动装箱与拆箱(Autoboxing and Unboxing)
- java自动拆箱(unboxing)/装箱(autoboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- 计算机网络总结
- [计算机网络] TCP连接的建立和终止
- String对象问题
- Team Foundation Server 2013 with Update 3 Install LOG
- POJ 3228 二分最大流
- Java基本数据的拆、装箱操作(unboxing&autoboxing)
- POJ2396 Budget 【带下界的最大流】
- 【Java】【SSH】Web 开发经典框架Spring+Struts+Hibernate官方网站下载地址
- Team Foundation Server BuilderService LOG
- java基础知识复习总结--增强型for循环
- 随想录(提高代码质量的几个工具)
- CocosEditor-java中的android项目传数据给Java项目(NodeReader相关)
- java进程间通信:
- 不用‘+’实现加法运算