复制或引用java中的变量

时间:2015-02-03 11:15:20

标签: android virtualization

  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);

这意味着虚拟化器也可以启用。我有正确的概念吗?

如果他们正在引用,则启用它们两者,否则不启用虚拟器。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

这取决于你想要传递的变量。例如,int变量按值传递,数组/列表按引用传递。简而言之,所有对象都通过引用传递,而普通变量/数据类型则不是。

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