关于Integer比较相等的问题

2019-10-11 13:48:00

原来两个Integer类型的数字不能用==来判断,要用equal

不过Integer类型的可以与1,2这样的纯数字来判断

参考地址   关于Integer比较相等的问题

1.通过new出来的两个Integer对象比较时,==是比较的对象地址,等同于一般对象比较的==,equals则会比较其内部的int值是否相等。因为内部重写了equals方法:


public boolean equals(Object obj) {

    if (obj instanceof Integer) {

        return value == ((Integer)obj).intValue();

    }

    return false;

}

2.不是通过new出来的两个Integer对象比较时(Integer i=100或者Integer i=Integer.valueOf(100)),当值处于-128-127之间(这个范围是byte范围),则会从缓存中取值,所以值一样的话,就会返回true。不在范围内同1.


public static Integer valueOf(int i) {

    if (i >= IntegerCache.low && i <= IntegerCache.high)

        return IntegerCache.cache[i + (-IntegerCache.low)];

    return new Integer(i);


  • 2017-04-26 16:43:03

    php对象和数组相互转换的方法

    这篇文章主要介绍了php对象和数组相互转换的方法,通过两个自定义函数实现对象与数组的相互转换功能,非常简单实用,需要的朋友可以参考下

  • 2017-04-26 22:59:15

    百度编辑器Ueditor的黑白名单过滤

    黑白名单配置。UEditor针对进入编辑器的富文本内容提供了节点级别的过滤,可以通过该配置的修改来达到控制富文本内容的目的

  • 2017-04-26 23:30:58

    PHP中session变量的销毁

    本篇文章主要是对PHP中session变量的销毁进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

  • 2017-05-02 17:51:44

    php生成不重复随机字符串

    使用时间戳作为原始字符串,再随机生成五个字符随机插入任意位置,生成新的字符串,保证不重复

  • 2017-05-02 17:54:57

    高并发 php uniqid 不重复唯一标识符生成方案

    PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结合md5函数来生成唯一ID。