【Java】一个关于装箱的某里面试题

简介: 【Java】一个关于装箱的某里面试题

题目:

package csdn;
 
 
 
public class test2 {
    public static void main(String[] args)  {
        Integer a=100;
        Integer b=100;
        System.out.println(a==b);
        Integer c=200;
        Integer d=200;
        System.out.println(c==d);
 
    }
}
 
 
 
 
 
 

求这个代码的输出结果。

答案:

第一个为true,第二个为false.

我们来看一下这个题,我们这里发生了装箱操作,所以我们得知道装箱过程是什么样的,我们来看一下反编译

我们可以看到底层其实是调用了valueOf()这个方法,那我们去Integer类中找一下这个方法:

那也就是说,我们在进行自动装箱的时候,人家在底下会调用这个方法来帮我们进行装箱。

那我们再回到这个题目,这个题目在给a和b赋值的时候发生了装箱,装箱会调用valueOf()方法,那我们来理解一下这个方法:

因为a和b都是100,在这个范围之内,所以返回的都是相同的值,所以相等。

因为c和b是200,不在这个范围内,所以返回的都是new的对象,等号两边都是引用类型,比较的不是c和d的值,而是类似于地址的东西,所以不相等。

目录
相关文章
|
2月前
|
Java 编译器
Java中的自动装箱和拆箱
Java中的自动装箱和拆箱
|
4月前
|
人工智能 算法 Java
第十三届蓝桥杯B组Java(试题C:字符统计)
第十三届蓝桥杯B组Java(试题C:字符统计)
54 0
|
5月前
|
存储 数据挖掘 数据安全/隐私保护
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(上)
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题
78 1
|
8月前
|
Java 编译器 程序员
Java动拆装箱
Java动拆装箱
62 0
|
5月前
|
存储 算法 Java
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(下)
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(上)
83 1
|
21天前
|
JavaScript Java 测试技术
基于Java的职业高中智慧作业试题系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的职业高中智慧作业试题系统的设计与实现(源码+lw+部署文档+讲解等)
25 0
|
3月前
|
Java 编译器 测试技术
滚雪球学Java(07):自动装箱、自动拆箱,Java开发者必备技能
【2月更文挑战第8天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!
74 5
|
7月前
|
算法 Java
Java 最常见的试题:说一下 jvm 有哪些垃圾回收器?
Java 最常见的试题:说一下 jvm 有哪些垃圾回收器?
|
7月前
|
算法 Java
Java 最常见的试题:新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
Java 最常见的试题:新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
|
4月前
|
Java
第十三届蓝桥杯B组Java(试题B:山)
第十三届蓝桥杯B组Java(试题B:山)
29 0