to: Think2Exist(郁虻) blackhost(剑心) "ver的生存期只在f方法中。"这种讲法是不是对呢?我们看个例子:
class Test { String names[]=null; public Test() { names=new String[3]; namse[0]="castle"; names[1]="video"; } public displayAll() { for(i=0;i<names.length;i++) System.out.println(names[i]); } }这程序是没有错的,所以names的生存期不只在Test()中。为什么呢,因为我们在函数推出的时候已经将这块区域交给了names。此致
是不是这样?
如果只使用java语言,jvm会帮你控制内存,最多有时候会产生内存溢出。
按你的方法,一般不会产生内存溢出,但如果你的f()方法调用的实在频繁,而且你的b类
又是一个很复杂的类,也许会导致垃圾回收来不及回收你上次生成的 b 实例,然后
会产生内存溢出。
ver是一个方法,即f,内部的类的对象变量。它会在此方法调用结束释放ver占用的资源。
Think2Exist(郁虻)
blackhost(剑心) "ver的生存期只在f方法中。"这种讲法是不是对呢?我们看个例子:
class Test
{
String names[]=null;
public Test()
{
names=new String[3];
namse[0]="castle";
names[1]="video";
}
public displayAll()
{
for(i=0;i<names.length;i++)
System.out.println(names[i]);
}
}这程序是没有错的,所以names的生存期不只在Test()中。为什么呢,因为我们在函数推出的时候已经将这块区域交给了names。此致
只要是全局变量就在整个类中存在