基本类型的装箱与拆箱的比较
2017-04-21 16:07
309 查看
1 Integer a = 10; 2 Integer b = 10; 3 Integer c = new Integer(10); 4 System.out.println(a==b); 5 System.out.println(a==c);
我们可以猜想一下上面输出会是什么?答案是true,false,为什么出现这样的结果昵?这就涉及到了java的自动拆箱与装箱,首先java虚拟机先将1与2自动装箱,相当于实行了Integer a = new Integer(10); Integer b = new Integer(10);那这么看的的话,按道理5也应该输出为true。为什么却是false昵?java为了提高效率,将一些经常用到的数字-128~127的对象缓存起来,所以1与2实际并没有创建新的对象,而是使用的是缓存的同一个对象,所以为true,但3是自己创建了新对象,所以与缓存的对象就是两个不同的对象,所以为false。
Integer a = 200;
Integer b = 200;
6 System.out.println(a==b);这也就不难理解上面6输出的为false,因为创建了两个新对象,所以false。
相关文章推荐
- 包装类型、装箱拆箱、基本类型速度比较
- [疯狂Java]面向对象:基本类型的包装器类型、自动装箱/拆箱、包装器类型大小/相等比较
- Android中的java基础(二)——装箱与拆箱及不同基本类型的比较(类型转换)
- java基本类型和基本类型包装型比较时的自动拆箱和自动装箱
- 01 Java基本数据类型、包装类、装箱拆箱、parseXxx()、String.valueOf()
- 【JAVA学习】java基本数据类型与字符串之间的转换(基本数据类型、对象封装类、自动装箱、自动拆箱)
- 黑马程序员__ 基本数据类型的自动拆箱和装箱
- 加强eclipse的使用技巧。可变参数。基本数据类型自动装箱和拆箱。枚举。反射。数组反射的应用。ArrayList和HashSet。JavaBean
- 黑马程序员--张孝祥Java高新技术-JDK1.5新特性(二)【基本数据类型的自动拆箱与装箱,枚举】以及享元设计模式
- Java中的基本类型与封装类型以及自动装箱、拆箱
- Java高新技术【1】 (静态导入-可变参数-增强for循环-基本数据类型的自动拆箱与装箱)
- 关于自动装箱基本类型的值的比较
- JAVA1.5新特性----基本数据类型的自动拆箱与装箱
- Java基础加强<二>可变参数、增强for循环、基本类型的自动拆箱与装箱、枚举
- 基本数据类型对象包装类和自动装箱自动拆箱技术
- 黑马程序员_加强11_基本数据类型的自动拆箱与装箱+享元模式
- java 自动装箱与拆箱 (基本类型与包装类型)
- 黑马程序员-jdk1.5新特性--基本数据类型的自动拆箱与装箱
- 黑马程序员_高新技术_eclipse的使用技巧_可变参数_增强for循环_基本数据类型的自动拆箱与装箱
- 黑马程序员_高新技术:1)eclipse的使用技巧_可变参数_增强for循环_基本数据类型的自动拆箱与装箱