Mil*_* Lu 0 java arrays pointers memory-management
class App{
int[] a;
private void firstFunction(){
int[] b = {1, 2, 3, 4};
a = new int[4];
a = b;
}
private void secondFunction(){
for(int i=0; i<a.length; a++) System.out.println(a[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
双方a并b都朝着同一个内存指针.当b超出范围时,应该释放分配的内存并且a应该变为空,对吧?或者它是基于引用计数方法,b被删除但内存仍然存在?