编程语言
首页 > 编程语言> > java整数缓冲区

java整数缓冲区

作者:互联网

Integer缓冲区

public class cacheDemo {
    public static void main(String[] args) {
//        Integer i1=100;
//        Integer i2=100;
//        System.out.println(i1==i2);
//        System.out.println(i1.equals(i2));
//        Integer i3=200;
//        Integer i4=200;
//        System.out.println(i3==i4);//比较的是地址
//        System.out.println(i3.equals(i4));//比较的是值
        //以上代码通过反编译,底层使用的是valueof方法,等价于下面代码
        Integer i1 = Integer.valueOf(100);
        Integer i2 = Integer.valueOf(100);
        System.out.println(i1 == i2);//true
        Integer i3 = Integer.valueOf(200);
        Integer i4 = Integer.valueOf(200);
        System.out.println(i3 == i4);//比较的是地址false
    }
}

valueof源码:

image-20211226152828648

image-20211226152953757

可见,Integer类型只要数值在-128到127内,就会返回java为我们创建好的对象,这就叫做整数缓冲区,并不会new一个新的,因此100返回true,200返回false

标签:java,i1,System,整数,i4,println,缓冲区,Integer,out
来源: https://www.cnblogs.com/sp520/p/15794733.html