java - 类数据成员在赋值后不会改变

标签 java pointers reference

有一个代码:

class A {
    int x = 12;
}
public class Program {
    public static void main(String [] args) {
        A a = new A();
        int d = 10;
        a.x = d;

        System.out.println("a.x: " + a.x + ", d: " + d);

        d = 52;
        System.out.println("a.x: " + a.x + ", d: " + d);
    }
}

输出为:

a.x: 10, d: 10
a.x: 10, d: 52

为什么a.x没有改变吗?据我了解,在赋值过程中,左值引用右值,如果右值之后发生变化,则左值也必须改变。为什么没有发生?

最佳答案

这是因为您正在使用原语。复制的是值,而不是引用。

如果您要使用对象,那么它们将具有相同的引用并具有您期望的结果。

关于java - 类数据成员在赋值后不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37070347/

相关文章:

c - 释放指向 'double' 值的指针

c - 为什么我的 main.c 文件没有得到这个全局静态变量的更新值?

java - 如何将 .png 图像转换为字节数组 - Android、TFLITE 应用程序

c - 初始化 static char const *somevar

java - 如何以编程方式比较eclipse中的目录

pointers - 汇编词ptr含义

C++ - 在循环内声明引用变量?

c++ - 关于 C++ 中的内存,我需要了解什么?

java - 剪辑区域以在动画期间隐藏 JWindow

java - 如何使用 imap xoauth 获取电子邮件