学习
实践
活动
专区
工具
TVP
写文章
  • 广告
    关闭

    新年·上云精选

    热卖云产品年终特惠,2核2G轻量应用服务器7.33元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java的IntegerInteger比较相等

    Java的IntegerInteger比较相等 Integer是包装类(引用数据类型),int是基本数据类型, Integer a=12; Integer b=12; //a==b为true; Integer c=1200; Integer d=1200; //c==d为false; Integer e=new Integer(1); Integer f=new Integer(1); //e==f为false 引用数据类型对比需要用equals()方法对比相等 因Integer存在缓存, 在Integer的值不超过-128~127之间==对比为true, 若超过则会new一个Integer对象==结果为false ; 在比较时可使用(a.intValue==b)来比较, 用Integer和int对比Intege会自动拆箱变成int类型,所以结果就是int类型对比int类型了 总结:对象之间的比较不能用==,包括数字包装类 ,Integer,Long,Short,Character,Byte,都存在缓存机制,数字大于对应的缓存池就会new一个对象,就不能用==了,若小于缓存池,则包装类不会创建新的对象

    26340

    javaint和integer的区别_java中integer

    : int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类);因此在类进行初始化时 int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时:   int i =1;Integer i= new Integer(1);(要把integer 当做一个类看);但由于有了自动装箱和拆箱    (http://www.cnblogs.com/shenliang123/archive/2012/04/16/2451996.html),   使得对Integer类也可使用:Integer i Java中int和Integer关系是比较微妙的。 关系如下:   1.int是基本的数据类型;   2.Integer是int的封装类;   3.int和Integer都可以表示某一个数值;   4.int和Integer不能够互用,因为他们两种不同的数据类型

    7720

    | Integer

    之前一直没有注意到 Integer 类型的判断问题,我认为 “在数值判断中,== 和 equals 的效果是相同的”,直到今天写题发现包装类下的“不能”使用 == 进行判断。 Integer 是 int 的包装类,将基本类型赋值给包装类,会进行自动装箱,自动装箱操作就是进行 valueOf(int arg1)一般 new 创建的Integer会在堆中。 但是当对 Integer 类型进行判断时候,便不再是简单的数值比较了,而是对于对象间地址的比较,当生成的值处于 -128 <= value <= 127(默认),底层会直接从其缓存IntegerCache Integer 内部缓存类 IntegerCache 实现源码 private static class IntegerCache { static final int low = -128 其结果是 true 当且仅当该参数(及obj)不是 null 并且是 Integer 对象包含有相同 的int 值。

    7920

    浅谈 Integer

    3、Integer 的自动拆箱和装箱   自动拆箱和自动装箱是 JDK1.5 以后才有的功能,也就是java当中众多的语法糖之一,它的执行是在编译期,会根据代码的语法,在生成class文件的时候,决定是否进行拆箱和装箱动作 ;   为什么可以这样,通过反编译工具,我们可以看到,生成的class文件是: Integer a = Integer.valueOf(128);   这就是基本数据类型的自动装箱,128是基本数据类型 Integer a = new Integer(128); int m = a;   反编译生成的class文件: Integer a = new Integer(128); int m = a.intValue void main(String args[]) { Integer i = Integer.valueOf(10); Integer j = Integer.valueOf(10); 首先,直接声明Integer i = 10,会自动装箱变为Integer i = Integer.valueOf(10);Integer i 会自动拆箱为 i.intValue()。

    36290

    扫码关注腾讯云开发者

    领取腾讯云代金券