大家来看我这程序:
class aa{
public int[] printval(){
int[] a=new int[10];
for(int i=0;i<a.length;i++)
{
a[i]=i;
}
return a;
}
}
在这里函数返回了一个临时的数组,这在C++中是典型的内存泄露,我不知道java中是如何处理的,何时收回内存,他的GC机制是怎么样的?这样写的函数是不是不恰当,不应该返回一个临时的数组?
class aa{
public int[] printval(){
int[] a=new int[10];
for(int i=0;i<a.length;i++)
{
a[i]=i;
}
return a;
}
}
在这里函数返回了一个临时的数组,这在C++中是典型的内存泄露,我不知道java中是如何处理的,何时收回内存,他的GC机制是怎么样的?这样写的函数是不是不恰当,不应该返回一个临时的数组?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货