2-17
public class WrapperTest { public static void main(String[] args) { Integer one=new Integer(100); Integer two=new Integer(100); // 等号两边如果是对象名,比的是引用地址 System.out.println("one1=two的结果:"+(one==two)); Integer three=100; // 自动装箱 // Integer three = Integer.valueOf(100); System.out.println("three=two的结果:"+(three==100)); // 自动拆箱 // Integer four=100; Integer four = Integer.valueOf(100); System.out.println("three=four的结果:"+(three==four)); Integer five= 200; System.out.println("three=four的结果:"+(five==four)); Integer six= 200; System.out.println("three=four的结果:"+(five==six)); double d1=Double.valueOf(100); // 自动拆箱 System.out.println("d1=100的结果:"+(d1==100)); double d2=Double.valueOf(100); // 此时的valueOf方法是执行了new Double(100);的操作 System.out.println("d1=d2的结果:"+(d1==d2)); } }
1、为什么我的最后一个输出结果是true?
2、为什么d1可以自动拆箱成100,d2不可以自动拆箱变成100?
7
收起
正在回答
1回答
同学你好,关于同学的问题有如下回答:
1、在老师的演示中,定义的是包装类Double,如:
而同学定义的是基本数据类double,如:
在d1和d2比较时,比较的是数值的大小,是相等的,所以输出true。
2、d2也可以自动拆箱的,在同学的代码中,double d2 = Double.valueOf(100);其中Double.valueOf(100);是创建一个Double包装类的对象,d2是double基本数据类型,double d2 = Double.valueOf(100);就是一个自动拆箱的过程。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星