论Integer 类型值比较

java 中对于包装类比较,建议都用equals去比较

原因呢:
    首先我们来看八大基本数据类型的比较
    1==1 true
    这是因为基本数据类型的值直接挂到变量上了,所以比较值的时候相等。
    
    String a = new String("hello");
    String b = new String("hello");
    
    a == b false
    这是因为值"hello"在堆内存中, 变量a是引用的String实例在堆内存中的地址。
    所以a 和b为false
    
    那么Integer也属于引用类型,所以建议比较时候用equals
    不过integer它内部有IntegerCache , 对于  -128 ~ 127以内的数会在cache中产生,会复用已有对象 , 所以在这个区间内的数用 == 比较也是可以的。

论Integer 类型值比较

posted @ 2018-03-28 23:20  姩澕  阅读(380)  评论(0编辑  收藏  举报