4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
对java中int与Integer的一些理解_Toni_新浪博客
来自 : 新浪博客 发布时间:2021-03-24
假如从String的内存观出发,大部分运行结果应该都不是这样的,这是什么原因呢?我当时也有点犯糊涂,可能当时也有其他事加上指望耗哥的回复后面搞着搞着也就把这事忘了。。。十天后耗哥终于有回复了,方醒那些天提过的这么一个问题==!回复如下:java_bird:哈哈,终于被你看到这个问题了,String机制不一定适用与其他的封装类,更何况,String不是一种封装类,它没有对应的原始数据类型,String机制里面,只要内容相同,哈希码就相同,但是“==”的时候是判断对象所存的地址,而Integer的哈希码即是括号里面的数值,在判断“==”的时候,对于对象来说是比较两者在内存中的地址,对于一个是int,一个是integer,“==”比较的是数值!因为int是原始数据类型,也叫简单数据类型,而Integer的复杂数据类型,也叫引用数据类型!而String属于后者,String没有原始数据类型!明白木有…..顺带问你个问题,Integeri=100,i1=100;Integer i2=188,i3=188;请问i2==i3么?i==i1么?可能回复的有些高深,看不懂的朋友不用太紧张,因为我也有点凌乱,差距绝对是差距 ==!好吧,带着他的问题回去认真的再百度了一遍。。。明了,理解如下:Integer与Integer间的比较,从jdk1.5开始,有“自动装箱”这么一个机制,在byte-128到127范围内(ps整型的八位二进制的表示的范围为-128到127),如果存在了一个值,再创建相同值的时候就不会重新创建,而是引用原来那个,但是超过byte范围还是会新建的对象。综上,i==i1为true,i2==i3为false。有装箱是不是也有拆箱?哈,补充一下——自动拆箱机制,基本数据类型和对象比较的时候,对象会自动拆箱为基本数据类型再比较,比较的就是里面的值而不是地址,如
Integer i1=new Integer(128);
int i2=128;
i1==i2;
对象i1经历拆箱过程先变为int i1=128;当然之后的比较结果也是不言而喻了~对了,理论加实践只为更形象生动O(∩_∩)O实践如下:
2012年8月1日“java中的String详解—-new对象和常量池的概念”这篇文章,时值兴起,不禁留言“提个问题,Integer i1=new Integer(0)与int i2=0,“i1==i2”为什么返回...对java中int与Integer的一些理解_Toni_新浪博客,Toni,it对java中int与Integer的一些理解_Toni_新浪博客,Toni,对java中int与Integer的一些理解

本文链接: http://integer.immuno-online.com/view-704138.html

发布于 : 2021-03-24 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://