java 中 Integer 比较 问题

Posted CN.Ruyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中 Integer 比较 问题相关的知识,希望对你有一定的参考价值。

            对于 java 中 Integer  类型 比较 ,经常在面试中被提到 ,有时 还真的 让人 头疼。下面我来分析下。integer   比较问题。

 

解决 Integer 值比较问题。我想从以下几点说起。

1. Integer 的源码。

2.堆内存与常量池 

     从Integer 源码开 。 在  -128 到   127    之间 的 数    再次 再用 。或者赋值 直接从缓存中取。

     例子如下 :

 

       Integer    a = 127  ;

       Integer   b=127;

     Integer   c=999;

      Integer    d=999;

 

  integer  f= new  Intger (999);

  integer  t= new  Intger (999);

  System.out.println(f==d);  // true  ;  对于 new 出来 的 和 没有 new 出来的  ,new 出来的   直接进行 拆箱 处理。转换的 integer  .

System.out.println(a=b);//    true     127 在   -128 到  127  之间   所以会想成 

System.out.println(f==t) //      false   两个 new  出来的对象比较 都不想成 。

 

总结 :

    对于Integer  比较   用 ==   比较 

   1.对于 两个 都是 new 出来的对象 比较  一切都为 false   // Integer  a=new  Integer(10) ;   Integer  b=new Integer (10)     //false;

    2. 对于  连个 Integer 不是被 new 出来的 比较 如果 在  128-127 之间  的数  为  true 。否则 为 false    Integer  a=2;  Integer b=2;  //true 

  3. 对于 一个 是    Integer  不是被 new  出来   和 Int   笔记     都为 true 。    如  int a=1111;   Integer  b=1111; 

  4.  对于 一个int  与 一个   new  出来的 Integer  比较         一切都为 false;

 

    

 

以上是关于java 中 Integer 比较 问题的主要内容,如果未能解决你的问题,请参考以下文章

经典面试题:Integer类型 ==比较问题

int与Integer的爱恨情仇

Java包装类,以及Integer与int之间的比较

Java Integer int equals == 问题 求解答

Java面试题5 Integer的int 的种种比较?详细分析

java中如何将int与String作比较