我是学习Java的C ++程序员。在一种方法中,我想执行以下操作,获取当前对象内部存在的对象数组[称为array1],然后将其替换为其他数组[tempArray](以C ++代码形式的示例)

$ ...
$15  private void replaceArray(){
$16      // exchanging values tempArray also has been generated in this omitted section
$17      delete[] array1;
$18      array1 = tempArray;
$19 }
$ ...


我遇到的问题是Java中并不真正存在关键字“ delete”。所以我的问题是,如果我只做...

$ ...
$15 private void replaceArray(){
$16     // exchanging values tempArray also has been generated in this omitted section
$17      array1 = tempArray;
$18 }
$ ...


原始array1是否仍将存在而没有指针可以访问它,或者将由java的托管代码环境来处理(是的,我知道指针仍然存在,但是java虚拟机仅对它们进行管理。程序员没有权限。触摸它们)?

最佳答案

与数组的直接关联类似于将指针复制到新变量。

如果您对tempArray有另一个var并修改了任何值,则还可以修改array1。

但是,如果没有对该数组的引用,JVM将负责内存。

另外,复制数组的更好方法是对其进行克隆()。

关于java - java设置array1 = tempArray,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5709071/

10-12 12:37
查看更多