在 Java 中,当我们将 java 对象参数传递给方法myMethod((MyObject) myObject)
时,基本上就像在 C++ 中传递对对象的引用一样myFunction(& myObject)
。在这种情况下,Java 开发人员拥有与 C++ 程序员几乎相同的自由,如果他想传递一个引用,他只传递一个对象,如果他想复制它,他在方法中手动完成。
但这是我的问题:
假设我有三个具有特定类型对象的不同数组MyObject
MyObject[] myObjectsOne
MyObject[] myObjectsTwo
MyObject[] myObjectsThree
我需要单独拥有它们,但我还需要一个替代数组,就像上面提到的这三个的摘要一样 - 例如用作单个对象来显示所有三个的内容。
场景:创建第四个数组,它将表示前三个的值,而实际上不会在任何地方复制这些值。(不为这些值分配额外的内存)
在 C++ 中,我只需创建一个表,其中包含对这三个表中相应对象的引用。
我一直认为在 Java 中它只是为我们制作的,但是当我开始考虑它时,我并不确定。
我们现在还有:MyObject[] myObjectsFour
而且表演完之后..
myObjectsFour[0] = myObjectsOne[0];
..是否访问myObjectsFour[0]
并myObjectsOne[0]
意味着实际上访问内存级别的同一个对象?
就像我理解的那样,它必须是那样的,如果不是的话myObjectsFour[0] = myObjectsOne[0].clone();