例:
Class Test {
ResultSet rs=null;
private ResultSet getResuluSet(){
this.rs=new ResultSet();
re=..............;//省略内容
ResultSet rsTemp=new ResultSet();
rwTemp=.............//省略内容
//这里大家认采用返回this.rs,还是返回来rsTemp;来得好
return this.rs;
return rsTemp;
}
}
根据编程习惯,我一般,会在方法内部重新定义一个rsTemp,然后返回来rsTemp,这样看起来很清爽.不需要定义一个成员变量在那里.
但就有一个问题, 如果我还有另外一个方法,还要返回一个ResulSet对象,是不是又在那个方法重新定义一个rsTemp对象呢.
大家认为就一个成员变量rs,所有的方法都是对这个rs操作好呢,还是每个方法都定义一个rsTemp好java里是不是方法的局部变量一执行完成后就会回收.而成员变量不回收.java 垃圾回收
Class Test {
ResultSet rs=null;
private ResultSet getResuluSet(){
this.rs=new ResultSet();
re=..............;//省略内容
ResultSet rsTemp=new ResultSet();
rwTemp=.............//省略内容
//这里大家认采用返回this.rs,还是返回来rsTemp;来得好
return this.rs;
return rsTemp;
}
}
根据编程习惯,我一般,会在方法内部重新定义一个rsTemp,然后返回来rsTemp,这样看起来很清爽.不需要定义一个成员变量在那里.
但就有一个问题, 如果我还有另外一个方法,还要返回一个ResulSet对象,是不是又在那个方法重新定义一个rsTemp对象呢.
大家认为就一个成员变量rs,所有的方法都是对这个rs操作好呢,还是每个方法都定义一个rsTemp好java里是不是方法的局部变量一执行完成后就会回收.而成员变量不回收.java 垃圾回收
而对于成员变量,只有当栈中没有引用型变量指向这个成员变量所属的对象的堆内存地址时,那么垃圾回收线程就可能随时将它回收,但不能判断出是何时进行的。是将引用型变量定认在类成员位置上,还是在一个方法中,具体的就得看情况了:当你频繁的对这个引用型变量进行调用时,建议在成员位置上对其new,这样jvm就不会因为其在方法中new,而频繁的对其开辟空间和释放空间了。
希望对你有用!
非常感谢你的帮助.不过我认为在成员位置上new局限性太大了,我感觉还是在构造里把所有的成员变量都new一次就行.