关于Integer比较的小问题
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。
相关推荐
项目里遇到的小问题的 整理
将正整数 n 表示成一系列正整数之和, k n n n ... 2 1 , (其中, 1 , 1 ... 2 1 ...们就要采用递归与分治策略,将这个大的问题转换为求解小的问题。
今天小编就为大家分享一篇关于laravel 数据库迁移中integer类型是无法指定长度的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
下面小编就为大家带来一篇完美解决gson将Integer默认转换成Double的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
):设有一个数组A:array [0..N-1] of integer; 存放的元素为0~N-1(1)之间的整数,且A[i]≠A[j](i≠j)。例如当N=6时,有:A=(4,3,0,5,1,2)。此时,数组A的编码定义如下: A[0]编码为0; A[i]编码为:在A...
在IBM JDK 8中, java.lang.Integer.toHexString(int)方法有时会返回以nul字符'\u0000'开头的字符串。 目前的项目在那里证明了这个问题。 重现步骤 获得IBM JDK8。我的情况是,确切的版本是 java -version java ...
leetcode leetcode练习 twosum 问题 ;add two numbers问题;reverse integer问题;最大不重复子字符串长度问题;atoi问题;
但是,有符号和无符号类型之间的整数比较是无效的。 cstdint整数仅仅是typedef,因此继承了相同的残破性。整数算法也被破坏。有符号的溢出调用未定义的行为,而无符号的溢出给出以上限+1为模的结果。已经进行了许多...
论文研究-运送任务合并下专用道设置问题的建模与求解.pdf, 在大城市举办大型运动会,其拥挤的交通很可能无法满足赛事的运送要求. 设置专用车道是最常用的解决方法. 然而...
Big Dumb Integer(或 BDI)是一个 JavaScript 库,作为练习构建,允许在该语言中进行任意精度的整数数学运算。 BDI 是作为一个学习项目开发的,旨在帮助解决 JavaScript 中的 Project Euler 问题。 还有其他一些...
Hub作为特殊的设备在交通运输、邮政和电信网络中承担着交换、转载和整理的重要角色。研究一般网络中最小费用星形2-hub选址问题和最小时延星形2-hub选址问题,分别给出多项式时间算法,计算出2个hub的最佳位置。
FatFs的作者写了两个,一个是正宗的FatFs,比较适合大的RAM的设备,另一个是FatFs/Tiny,比较适合小RAM的系统,比如单片机,FatFs/Tiny占用较小的RAM,代价是更慢的读写速度和更少的API函数。不过两个都支持FAT12,...
////DES加密,返回用十六制编码的密文,可避免特殊字符的存储问题,只能使用64bit(8字节)密钥 function string DesEnCodeHex(string as_code,string as_key) library 'extlib.dll' ALIAS FOR "DesEnCodeHex;Ansi" ////...
Public Sub ShortPathSearch(NoNode1 As Integer, NoNode2 As Integer, nNode As Integer, NoNode() As Integer, LinkN() As Integer, LinkNi() As Integer, LinkNo() As Integer, LinkDis() As Double, ...
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...
之前都是看书,大部分也是c++的实现,但是搞前端不能忘...本文在构建邻接矩阵时,默认Number.MAX_SAFE_INTEGER表示两个节点之间没有边,Number.MIN_SAFE_INTEGER表示当前节点没有自环。 代码如下: /** * 邻接矩阵 *
Private Sub picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) a = 4680: b = 4980: c = 4980 - 3780: d = Atn((4680 - 4560) / (4980 - 4620)) e = Atn((4680 - 4440) / (4980 ...
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...