java基本类型缓存

    public static void main(String[] args) {
        Integer a = 127;
        Integer b = 127;
        System.out.println("a==b:"+(a==b));  //a==b:true
        Integer c = new Integer(127);
        Integer d = new Integer(127);
        System.out.println("a==b:"+(c==d));  //a==b:false
        Integer e = 128;
        Integer f = 128;
        System.out.println("a==b:"+(e==f));  //a==b:false
    }

对于Byte/Short/Long,是和Integer类似的,范围在-128至127内的,都有对应的缓存

总结,对于上述基本类型对应的包装类,只要在缓存范围内,即-128至127范围(一个字节,补码表示的范围)内,

我们是可以直接用==判断相相等的。

float、double、boolean、char 没有缓存

猜你喜欢

转载自www.cnblogs.com/mcalm/p/8888772.html