多语言展示
当前在线:934今日阅读:176今日分享:34

java中的int与integer的区别

在java面试时,常常会遇到对基础知识的掌握情况的问题,其中不乏有对int与integer的比较问题,我们今天就来学学他们之间的区别
方法/步骤
1

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

2

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

3

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

4

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

5

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

6

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

7

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

8

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

9

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

10

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

推荐信息