我是学习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/