Integer的自动装箱以及Int比较
2016-04-27 13:39
417 查看
自己写了一点例子来区分
//1
Integer i =3;
Integer i2=3;
System.out.println(i==i2);//true
//2
Integer i3=128;
Integer i4 = 128;
System.out.println(i2==i3);//false
//3
Integer i5=127;
Integer i6 = 127;
System.out.println(i5==i6);//true
//4
int i7=3;
int i8=3;
System.out.println(i7==i8);//true
//5
int i9=300;
int i10=300;
System.out.println(i9==i10);//true
//6
Integer i11 = new Integer(3);
Integer i12 = new Integer(3);
System.out.println(i12==i11);//false
//7
int i13 = 3;
System.out.println(i11==i13);//true
以上列举了7种情况的比较,如我们所知,在java里==号比较的是内存地址是否相同,即是否为同一个对象。
第一二三种情况为了说明Integer与Integer间的比较,从jdk1.5开始,有“自动装箱”这么一个机制,在byte-128到127范围内(ps整型的八位二进制的表示的范围为-128到127),如果存在了一个值,再创建相同值的时候就不会重新创建,而是引用原来那个,但是超过byte范围还是会新建的对象,
第4,第5种情况则说明像int这样的基本类型==比较的只是值是否相同,这里说明下String类型在==比较上也有区别,大家可以另行百度下
第6种情况则输出false,则说明==比较的确实是内存地址,Integer对象new出来以后是在堆里。
第7种情况输出true则说明了自动拆箱机制,即基本数据类型和对象比较的时候,对象会自动拆箱为基本数据类型再比较,比较的就是里面的值而不是地址。
//1
Integer i =3;
Integer i2=3;
System.out.println(i==i2);//true
//2
Integer i3=128;
Integer i4 = 128;
System.out.println(i2==i3);//false
//3
Integer i5=127;
Integer i6 = 127;
System.out.println(i5==i6);//true
//4
int i7=3;
int i8=3;
System.out.println(i7==i8);//true
//5
int i9=300;
int i10=300;
System.out.println(i9==i10);//true
//6
Integer i11 = new Integer(3);
Integer i12 = new Integer(3);
System.out.println(i12==i11);//false
//7
int i13 = 3;
System.out.println(i11==i13);//true
以上列举了7种情况的比较,如我们所知,在java里==号比较的是内存地址是否相同,即是否为同一个对象。
第一二三种情况为了说明Integer与Integer间的比较,从jdk1.5开始,有“自动装箱”这么一个机制,在byte-128到127范围内(ps整型的八位二进制的表示的范围为-128到127),如果存在了一个值,再创建相同值的时候就不会重新创建,而是引用原来那个,但是超过byte范围还是会新建的对象,
第4,第5种情况则说明像int这样的基本类型==比较的只是值是否相同,这里说明下String类型在==比较上也有区别,大家可以另行百度下
第6种情况则输出false,则说明==比较的确实是内存地址,Integer对象new出来以后是在堆里。
第7种情况输出true则说明了自动拆箱机制,即基本数据类型和对象比较的时候,对象会自动拆箱为基本数据类型再比较,比较的就是里面的值而不是地址。
相关文章推荐
- 使用 CXF 做 webservice 简单例子
- 设计模式之单例详解
- img的宽高无法根据父a元素变化-----内联元素化为块级元素
- osmdroid中为何显示空地图
- 【LeetCode】263. Ugly Number 丑数判断
- 发消息的基类
- android 调用 su 指令
- Dagger2 注解 初识
- 扩展方法(C#)
- 扩展方法(C#)
- LigerUI用Post\Get\Ajax前后台交互方式的写发
- java IO流操作文章
- WebService 的工作原理
- 常用Linux命令
- 415 Unsupported Media Type
- Create and Use a Custom Formatter in the Apache HBase Shell
- 利用freemarker生成xml
- Java内存机制
- 免费开源网管软件cacti,nagios,zabbix,WeADMIN ITOSS亲测分享
- android程序内多语言切换不需要重新启动的解决方案