Integer a = 1;
Integer b = 1;
Integer c = 127;
Integer d = 127;
Integer e = 128;
Integer f = 128;
System.out.println(a==b);
System.out.println(c==d);
System.out.println(e==f);
结果会是什么呢?
true
true
false
why?
这里用到了java的装箱功能。
在编辑阶段一个Integer的变量直接赋值整数,编译器会优化为Integer.valueOf(int);
在valueOf里面做了什么样的操作呢?
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
默认IntegerCache.low = -127
InegerCache.high = 127
所以如果值在-127到127之间,会直接走缓存,否则会重新new一个对象。
缓存里的对象是已经存在的,所以在比较==的时候,会出现true的情况。
而new的时候就是一个重新的对象,两者比较会出现false。
转载连接:http://qq54903099.iteye.com/blog/2152918
相关推荐
bigdecimal转integer
在一些需求中,我们可能需要将 BigDecimal 值转换为 Integer 类型。这时,可以使用 BigDecimal 的 intValue() 方法进行转换。 当 BigDecimal 值小于或等于 Integer.MAX_VALUE(2^31-1)时,intValue() 方法返回 ...
本文主要介绍了Java Integer两种转int方法比较。具有很好的参考价值,下面跟着小编一起来看下吧
bigdecimal转integer
bigdecimal转integer
Mybatis Generator将tinyint映射成Integer的解决办法
java中Integer包装类的详细讲解(java二进制操作,所有进制转换) 十进制转成二进制 十进制转八进制 十进制转十六进制 十六进制转成十进制 十六进制转成二进制 八进制转成十进制 等等所有进制转换和操作
mybatis逆向工具generator,中文注释,把自动生成的Byte改成了Integer
下面小编就为大家带来一篇完美解决gson将Integer默认转换成Double的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java8 将List<Integer> 转换成以逗号分割的String字符串。 一篇文章带你快速了解!
学习文档_JAVA中Integer和Byte转换
将正整数 n 表示成一系列正整数之和, k n n n ... 2 1 , (其中, 1 , 1 ... 2 1 ...们就要采用递归与分治策略,将这个大的问题转换为求解小的问题。
function SelectLocatPage(PageNum:integer):Range; //选择指定页面,返回选择范围 function GotoLocatPage(i:integer):Range; //移动到指定页面 返回一个范围 function getPageSize:Integer; //取得所有页码 ...
integer 可以已10进制,8进制,16进制表示。 用八进制表示的时候,数字需要已0(零)开头; 用十六进制表示的时候,数字需要已0x(零x)或者0X(零大写X)开头; integer 溢出: integer溢出的时候,会自动的转化为float...
一、利用Integer将十进制的数进行进制转换 方法 十进制转换其他进制 使用方法 返回值 10进制转2进制 Integer.toBinaryString(n) 一个二进制字符串 10进制转8进制 Integer.toOctalString(n) 一个八进制字符...
13. 罗马数字转整数 Roman to Integer用哈希存储映射字符--->对映的值对字符串的字符挨个判断,考虑下一个字符如果下一个字符大于当前字符,su
在IBM JDK 8中, java.lang.Integer.toHexString(int)方法有时会返回以nul字符'\u0000'开头的字符串。 目前的项目在那里证明了这个问题。 重现步骤 获得IBM JDK8。我的情况是,确切的版本是 java -version java ...
Int、unsigned int、long long int 和 unsigned long long int 都与基本整数类型兼容,所有可用的运算(比较、算术和按位运算)都可以在此处获得。 但是在赋值的情况下,由于Integer->基元类型的赋值大部分会导致值...
Printing big integer. 将普通数字转换显示成如下所示的图形数字,例如数字0,1将显示如下
java 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docxjava 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docx