Integer比较值的时候小心使用】的更多相关文章

package integerdemo; public class IntegerDemo { public static void main(String[] args) { //-128--127之间 Integer i1 = 100; Integer i2 = 100; if( i1 == i2){ System.out.println("i1 == i2"); }else{ System.out.println("i1 != i2 "); } //大于127…
对于包装类型Integer的值比较与int的值比较是不同的:   public class Java_Val_Compare { public static void main(String[] args) { Integer a1 = 127; Integer a2 = 127; System.out.println("a1==a2?:\t"+(a1==a2)); Integer b1 = 128; Integer b2 = 128; System.out.println("…
int和Integer的区别 int是基本数据类型,Integer是int的包装类. Integer必须实例化后才能使用,int变量不需要. Integer实际是对象的引用,生成一个新对象实际上是生成一个指针指向此对象:而int则是直接存储数据值. Integer默认值是null,int默认值是0: Integer的缓存范围是-128到127. 关于Int和Integer比较的一些延伸: 例子: Integer a= new Integer(100); Integer b = new Integ…
项目有个查询当地新闻的接口,从GEO文件中取得code,后台查询. 下午测试的时候查询日本:3920000000,结果报java.lang.NumberFormatException,数字格式化异常, 调试后发现代码中有个是否整数的判断,会把String转换成Integer,"3920000000"超出了int的值域后报异常. JDK 7的虚拟机中,int取值范围为"-2^31~(2^31-1)". 对于 byte 类型,取值范围是从-128 至 127(-27至…
反射是很强大的,谁说的final修饰的就不能改变, 通过反射获取成员变量,之后可以取消访问修饰符,也就是说private的也可以访问, 在修改常量(final修饰的),之后就可以对其做任何操作了 如下,通过一个方法交换两个Integer对象的值: package ni.jun.yang.test; import java.lang.reflect.Field; import java.lang.reflect.Modifier; public class Test { public static…
今天在做一个算法时,由于为了和其他人保持接口的数据类型一致,就把之前的int换为Integer,前几天测了几组数据,和之前的结果一样,但是今天在测其它数据 的时候,突然出现了一个奇怪的bug,由于之前我的模块所有的数据(就是当时数据类型还是int)都测过,这个算法整体由三个所写的模块构成(包括我在内),所以其他 两位同伴都去检测各自的模块,但是后来发现是我传出来的数据有点问题,当时我也是百思不得其解,就一路打断点,加肉眼查看数据,后来终于发现是两个Integer类型的 值在本应该相等的地方进入相…
今天刚好遇到这样的问题,别的不说,先上代码 public class TestInteger { public static void main(final String[] args) { final Integer a = 500; final Integer b = 500; final Integer c = 100; final Integer d = 100; System.out.println("a=b :" + (a == b)); System.out.printl…
测试代码 Integer c = ; Integer d = ; Integer e = ; Integer f = ; System.out.println(c == d); System.out.println(e == f); 结果输出: true false Integer为对象判断是否相等还是使用equals最靠谱,int为基本类型,判断是否相等就是可以使用== 其中的原因: ) + + ]; static { ; i < cache.length; i++) cache[i] = )…
Integer c = 3;Integer d = 3;Integer e = 321;Integer f = 321;System.out.println(c == d);System.out.println(e == f); 输出 true false Integer为对象判断是否相等还是使用equals最靠谱, int为基本类型,判断是否相等就是可以使用==. 原因: static final Integer cache[] = new Integer[-(-128) + 127 + 1]…