两个Integer比较】的更多相关文章

今天在做一个算法时,由于为了和其他人保持接口的数据类型一致,就把之前的int换为Integer,前几天测了几组数据,和之前的结果一样,但是今天在测其它数据 的时候,突然出现了一个奇怪的bug,由于之前我的模块所有的数据(就是当时数据类型还是int)都测过,这个算法整体由三个所写的模块构成(包括我在内),所以其他 两位同伴都去检测各自的模块,但是后来发现是我传出来的数据有点问题,当时我也是百思不得其解,就一路打断点,加肉眼查看数据,后来终于发现是两个Integer类型的 值在本应该相等的地方进入相…
两个Integer类型比较不能使用==,要使用equals,   == 在-127~128是可以用的,超出这个范围就不行 public static void main(String[] args) throws Exception { Integer a = -129; Integer b = -129; if(a==b){ System.out.print("相等"); }else{ System.out.print("bu 相等");//输出这个 } } 原因…
通过下面的例子,来了解integer比较大小需注意的几点. eg.定义Integer对象a和b,比较两者结果为:a不等于b Integer a = 1; Integer b = 1; if(a==b){ System.out.print("a等于b"); }else{ System.out.print("a不等于b"); } 因为Integer是对象类型,虽然两者内容相同,但是两者是不同的两个对象,在虚拟机中完全是不相干的2个对象,指向不同的地址,所以这样比较的话,…
当数值不在 -128~127范围时就不会进行缓存操作,它会选择进行new integer()的操作.这样他们被分配到堆里面.[这个可以去查看integer.valueof()的源码].在用==或者!=比较时,会比较地址,所以两个Integer比较失效了,但可以选择用equals比较或者转成int型再比较.…
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt346 这是一个挺有意思的讨论话题. 如果你运行下面的代码 1 2 3 4 Integer a = 1000, b = 1000;       System.out.println(a == b);//1     Integer c = 100, d = 100;       System.out.println(c == d);//2 你会得到 1 2 false true…
Integer a = Integer.valueOf(127); Integer b = Integer.valueOf(127);   Integer c = Integer.valueOf(128); Integer d = Integer.valueOf(128);   System.out.println(a == b); System.out.println(c == d);   结果: true false   原因: Integer类已经对数字0-127做了一个缓存,创建0-12…
public class SwapTest { public static void main(String[] args) throws Exception { Integer a = 1, b=2; System.out.println("before===="+"a:"+a+"b:"+b); swap(a, b); System.out.println("after====="+"a:"+a+&quo…
反射是很强大的,谁说的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作为java中元老级的数据类型,可谓无处不在,自从jdk5诞生了Integer,从此不在孤单. 为什么要设计Integer呢?它与int有什么区别? 一.Integer是int的包装类型,是引用类型,int是值类型. 衍生出来的特点就是: (1)Integer比较时比较地址,int比较时比较值,Integer与int比较又如何呢?留个疑问,下面再论. (2)以对象的属性存在时,Integer初始默认值为null,int为0;在方法作用域内,变量是要手动进行初始化滴,若只声明,在后面使用的时…
本文涉及到一些JVM原理和Java的字节码指令,推荐感兴趣的读者阅读一本有关JVM的经典书籍<深入Java虚拟机(第2版)>,将它与我在<.NET 4.0面向对象编程漫谈>中介绍的CLR原理与IL汇编指令作个对比,相信读者会有一定的启发.而仔细对比两个类似事物的异同,是很有效的学习方法之一. 1 奇特的程序输出 前段时间,一个学生给我看了一段“非常诡异”的Java代码:   public class testInteger {    public static void main(…
今天在开发中判断两个Integer值相等, Integer a = 3; Duixiang duixiang = new Duixiang(); duixiang = DAO.getDuixiang(); Integer b = duixiang.getB(); System.out.print(a == b);System.out.print(a.equals(b)); 发现a==b时,为false,a.equals(b)为true. 后来发现因为我b的值是从数据中拿出的一个对象的值.a和b的…
本文由 ImportNew - 靳禹 翻译自 stackoverflow.欢迎加入翻译小组.转载请见文末要求. 有个仁兄在 StackOverflow 上发起了一个问题,是这么问的: “ 我被下面的代码搞晕了,为什么它们会返回不同的值?” 1 2 3 System.out.println(Integer.valueOf("127")==Integer.valueOf("127")); System.out.println(Integer.valueOf("…
具体问题以前偶然遇到过,好象是一个java答题得分的论坛,当时做错还研究了下怎么回事,但是前两天遇到类似问题却没想起来.巩固下基础,转了下面文章. 以下内容转自:http://www.importnew.com/9162.html-------------分割线---------------------- 有个仁兄在 StackOverflow 上发起了一个问题,是这么问的: “ 我被下面的代码搞晕了,为什么它们会返回不同的值?” System.out.println(Integer.value…
获取Integer对象有两种方式:Integer x = 100:或者Integer x = new Integer(100): Integer x = 100:等价于Integer x = Integer.valueof(100); 用valueof()函数返回一个Integer对象. Integer是对象 int是数据类型,对象和数据类型比,比的是数值,会自动拆箱,所以不管是Integer x = 100:或者Integer x = new Integer(100): 和100相==,结果都…
jdk的源代码的时候注意到Integer.parseInt(s) 和 Integer.valueOf(s)的具体代码的实现有所区别: Java代码 public static int parseInt(String s) throws NumberFormatException {  return parseInt(s,10);     }  Java代码 public static Integer valueOf(String s) throws NumberFormatException …
Integer类 Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包含一个 int 类型的字段. 该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法. static int MAX_VALUE 保持 int 类型的最大值的常量可取的值为 231-1. static int MIN_VALUE 保持 int 类型的最小值的常量可取的值为 -231. static int SIZE…
java.lang 类 Integer java.lang.Object java.lang.Number java.lang.Integer 全部已实现的接口: Serializable, Comparable<Integer> public final class Integer extends Number implements Comparable<Integer> Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包括一个 int 类型…
Integer是平时开发中最常用的类之一,但是如果没有研究过源码很多特性和坑可能就不知道,下面深入源码来分析一下Integer的设计和实现. Integer: 继承结构: -java.lang.Object --java.lang.Number ---java.lang.Integer 其中父类Number是个抽象类,是所有数字类型相关的类的父类,例如Double.Float.Integer.Long 和 Short. Integer类还实现了Comparable接口用以比较两个Integer的…
声明:本文为博主转载文章,原文地址见文末. 知识点1:integer和int的区别 /* * int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类.int的默认值为0, * 而Integer的默认值为null * ,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别 * ,则只能使用Integer * .在JSP开发中,Integer的默认为nul…
在讲解 Integer 之前,我们先看下面这段代码: public static void main(String[] args) { Integer i = 10; Integer j = 10; System.out.println(i == j); Integer a = 128; Integer b = 128; System.out.println(a == b); int k = 10; System.out.println(k == i); int kk = 128; System…
今天刚好遇到这样的问题,别的不说,先上代码 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…
1.Integer m =200; Integer n =200; System.out.println(m==n); 输出falseInteger x =6; Integer y=6; System.out.println(x==y); 输出true 原因: java 保存有8中基本类型的"池" 整型是范围是-128~127 所以如果整数不超过127则引用指向同一"池"所以他们指向的是同一对象超过127 就不是同一对象原因在于,在进行自动拆装箱时,编译器会使用In…
记得有次面试,面试官问我: 如何写一个方法交换两个 Integer 类型的值? 当时心里一惊,这是把我当小白了呀!交换两个数的值还不容易么,最简单的直接搞一个中间变量,然后就可以交换了… … 面试官随即拿出一张雪白雪白的 A4 纸 工具用多了,有没有体验过白纸写代码?来吧,开始你的表演,小伙子. 此时稍微有点心虚,但还是要装腔作势,把自己想象成大佬才行. 有的人可能会问,你不是说很简单么,还心虚个啥?写过代码的都知道,工具写代码是有自动补全提示的,这白板写代码纯粹就是考察你对代码的熟练度,其实相…
 包装类 把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lang包中. Number 类 Number数值类型是byte.double.float.int.long 和 short类的抽象父类,提供把包装类转化成基本数据类型的方法(xxxValue). Interger 是int基本数据类型的包装类,在Integer内部封装了一个final int value的属性. package cn…
    Integer 基本数据类型int  的包装类 Integer 类型的对象包含一个 int 类型的字段     属性简介 值为 2^31-1 的常量,它表示 int 类型能够表示的最大值 @Native public static final int   MAX_VALUE = 0x7fffffff; 值为 -2^31 的常量,它表示 int 类型能够表示的最小值 @Native public static final int   MIN_VALUE = 0x80000000; 用来以二…
基本概念的区分: 1.Integer 是 int 的包装类,int 则是 java 的一种基本数据类型2.Integer 变量必须实例化后才能使用,而int变量不需要3.Integer 实际是对象的引用,当new一个 Integer时,实际上是生成一个指针指向此对象:而 int 则是直接存储数据值4.Integer的默认值是null,int的默认值是0 Integer.new Integer() 和 int 的比较 1.两个 new Integer() 变量比较 ,永远是 false 因为new…
在好久以前的一次面试中,面试官问了我这么一个问题:“现在有 Integer a = 56, b = 56, c = 180, d = 180;  请问:a == b ,c == d  是否成立,也就是是否为true?” 我当时知道 a == b 是 为true,c == d 是为false的,我也是这么回答的.接着面试官问我,“为什么呢?” 然后我就不知道了.那个的确是不是很清楚为什么会这样,不过虽然那个时候这个问题没有回答出来,但是其他问题都回答得不错,并且这是一面,到了二面的时候也回答得不错…
package IntegerTest;import java.util.Base64.Decoder; public class test01 { /** * 包装类的基本数据类型 * int => Integer byte => Byte short => Short long => Long float => Float double => Double char => Character boolean => Boolean 方法原理一致,下面已in…
https://blog.csdn.net/magician_Code/article/details/51469101 我们先来看看下面代码的运行情况: public static void main(String[] args) { // TODO Auto-generated method stub Integer integer1; Integer integer2; integer1 = new Integer(10); integer2 = new Integer(10); //第一…
今天在做Object 自动转为Integer 类型之后的判断,遇到一个不理解的点,当数值超过127之后,两个数值相同的Object 对象用 == 判断的结果是false. Object a = 128; Object b = 128; System.out.println(a.getClass().getName()); System.out.println(b.getClass().getName()); System.out.println(a==b); Object a1 = 127; O…