gpt4 book ai didi

Java对象和原始类型变量混淆

转载 作者:行者123 更新时间:2023-12-01 21:18:35 25 4
gpt4 key购买 nike

我对这三个代码感到困惑

    int a = 5;
int b = 6;
int c = 5;

    Integer x = new Integer(5);
Integer y = new Integer(6);
Integer z = new Integer(5);

    Integer i = 5;
Integer j = 6;
Integer k = 5;

我知道第一个是一些包含值的变量,第二个是一些引用一些不同对象的变量,但是第三个是什么?我知道它们是引用数据类型。

但我不明白为什么创建了多少对象......如果有的话!

最佳答案

Integer 是一个(包装器)类名,因此该类型的变量是对象。当x被赋予new Integer(5)的值时,从道德上讲,你不能直接使用x进行数学运算。要在操作中使用 x,您必须使用包装类方法 intValue() 从对象形式获取数字(原始)形式的 x 值。

例如:

Integer x = new Integer(5);
int my_x = x.intValue();
int y = 10 + my_x; //y = 15

但是,在数学运算中直接使用 x 不会产生错误,事实上,会产生与执行上述步骤相同的输出。这是因为 JVM 会隐式将对象转换为原始数据值,这个过程称为自动装箱。当隐式完成时,逆过程称为拆箱。因此,在上面的例子中,你也可以这样做:

Integer x = new Integer(5);
int y = 10 + x; //y = 15;

希望你现在明白了。

关于Java对象和原始类型变量混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39511977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com