因为一个小小的Integer问题导致阿里一面没过,遗憾!

2021-12-02 09:38:36 浏览数 (1)

面试题:new Integer(112)和Integer.valueOf(112)的区别

面试官考察点猜想

这道题,考察的是对Integer这个对象原理的理解,关于这道题的变体有很多,我们会一一进行分析。

理解这道题,对于实际开发过程中防止出现意想不到的Bug很有用,建议大家认真思考和解读。

背景知识详解

关于Integer的实现

Integer是int的一个封装类,它的构造实现如下。

理解了原理后,我们只需要修改Integer temp=a这段代码,改成下面这种写法。保证temp变量是一个独立的实例。

代码语言:javascript复制
Integer temp=new Integer(a);

修改以后运行结果如下

代码语言:javascript复制
交换前:a=1,b=2
交换后:a=2,b=1

0 人点赞