本篇内容介绍了“Int和Integer有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Integeri1=newInteger(12); Integeri2=newInteger(12); System.out.println(i1==i2);//false Integeri3=126; Integeri4=126; inti5=126; System.out.println(i3==i4);//true自动装箱 System.out.println(i3==i5);//true Integeri6=128; Integeri7=128; inti8=128; System.out.println(i6==i7);//false System.out.println(i6==i8);//true
以上这些输出的答案是什么?true or false? why?
分情况来比较
都定义为Integer的比较:
new:一旦new,就是开辟一块新内存,结果肯定是false 不new: 看范围 Integer做了缓存,-128至127,当你取值在这个范围的时候,会采用缓存的对象,所以会相等 当不在这个范围,内部创建新的对象,此时不相等
Integer和int的比较:
实际比较的是数值,Integer会做拆箱的动作,来跟基本数据类型做比较 此时跟是否在缓存范围内或是否new都没关系
源码分析:
当我们写Integer i = 126,实际上做了自动装箱:Integer i = Integer.valueOf(126); 分析这段源码
publicstaticIntegervalueOf(inti){ if(i>=IntegerCache.low&&i<=IntegerCache.high) returnIntegerCache.cache[i+(-IntegerCache.low)]; returnnewInteger(i); } //IntegerCache是Integer的内部类 privatestaticclassIntegerCache{ staticfinalintlow=-128; staticfinalinthigh; staticfinalIntegercache[]; static{ //highvaluemaybeconfiguredbyproperty inth=127;
“Int和Integer有什么区别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!
php如何实现int转字节
php如何实现int转字节这篇文章主要介绍了php如何实现int转...
PHP随机生成8位数字和卡密
mysql 大批量插入解决方案
PHP7新特性
1.变量类型声明,可声明函数的参数类型与函数返回值:两种模式:强制(默认)和严格模式.。可以使用下列类型参数:string,...
了解一下PHP7
php实现网站缩略图的功能,文章末尾附实现代码
六、PHP基础教程,PHP中常用系统函数
6.1 数值进制转换numberbindec(stringbinary_string)二转十numberoctd...
PHP图像处理
如何使用 printf 来格式化输出 | Linux 中国
C++中如何实现int类型按字节打印输出
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议