手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

java中的int与integer的区别

时间:2024-10-28 16:31:28

1、int与integer最大的区别就是int是基本的数据类型,integer是封装的对象

2、我们看一个例子,我们看到,integer对象可以直接通过int赋值,这个过程称为装箱

java中的int与integer的区别

3、再看一下输出,发现integer对象与int比较时结果为true,这个过程称为拆箱

java中的int与integer的区别

4、在继续看例子,我们新创建了一个integer对象,在把这个对象与之前的值比较

java中的int与integer的区别

5、看一下结果,前两个都是拆箱,所以为true,第三个因为是不同的引用,所以false

java中的int与integer的区别

6、继续扩展,看一下下面的例子,是不是第一眼看上去都是false呢

java中的int与integer的区别

7、看一下结果,第一个为true,第二个为false,为什么呢,需要解答这个问题,我们就要了解一下装箱的本质

java中的int与integer的区别

8、当我们给一个Integer对象赋一个int值的时候,会调用Integer类的静态方法valueOf,我们看一下Integer的valueOf源码

java中的int与integer的区别

9、只要int值在IntegerCache.low与IntegerCache.high之间,就直接从缓存取值,那这两个值是多少呢,我们看一下IntegerCache

java中的int与integer的区别

10、发现值是-128到127,也就是说当值在-128到127时,其实引用指向的同一地址引用,所以上面的结果也就可以解释了

© 手抄报圈