java 中的变量被复制或引用

Variables in java are copied or referenced

  private static Virtualizer createVirtualizer()
  {
      try
      {
          if (virtualizer == null)
          {
              Virtualizer localVirtualizer1 = new Virtualizer(0, 0);
              virtualizer = localVirtualizer1;
              localVirtualizer1.setEnabled(true);
          }
          Virtualizer localVirtualizer2 = virtualizer;
          return localVirtualizer2;
     }
      finally {}
  }

我正在修改某人的代码。我认为 localVirtualizer 不是这段代码所必需的。最主要的是我为什么会在这里。如果我 initialize 反对 java。他们指的是同一个位置吗?正如你在初始化后看到的

virtualizer = localVirtualizer1;

他设置启用 localVirtualizer1.setEnabled(true);

这意味着虚拟器也已启用。我的概念正确吗?

如果它们正在引用,则它们都已启用,否则虚拟器未启用。

是的,你没看错。 Java 中的对象总是通过引用传递(而非对象,如 int, float, double 则通过值传递)。所以 virtualizer 和 localVirtualizer1 都指向内存中的同一个对象。它们只是同一对象的不同别名。因此,更改一个也会更新另一个。

这取决于您要传递的变量。例如,int 变量是按值传递的,而 array/list 是按引用传递的。简而言之,所有对象都是通过引用传递的,而正常的 variables/datatypes 不是。

在你的代码中,我看到你正在调用静态方法。因此,在您的场景中只有一个对象并且被引用。