码迷,mamicode.com
首页 > 编程语言 > 详细

java 中 Integer 比较 问题

时间:2019-05-18 00:46:41      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:笔记   sys   类型   col   否则   转换   out   span   java   

            对于 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 比较 问题

标签:笔记   sys   类型   col   否则   转换   out   span   java   

原文地址:https://www.cnblogs.com/yuruyi/p/10884278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!