java中静态类变量不使用会被回收吗?
简单表示了一下:publicclasspublicbianliang{publicstaticvoidmain(String[]args){LinkQueue.trans...
简单表示了一下:
public class publicbianliang {
public static void main(String[] args) {
LinkQueue.transfer();//经常调用
}
}
class LinkQueue {
public static LinkedList<Object> queue = new LinkedList<Object>();
public static Set<Object> buffer = new HashSet<Object>();
public static void transfer(){
queue= new LinkedList(buffer);
}
}
就是把缓冲buffer里的数据复制到queue里,会经常调用,队列queue定义是静态的,每次复制完产生的多了那原来的对象会被回收吗?帮忙分析一下 展开
public class publicbianliang {
public static void main(String[] args) {
LinkQueue.transfer();//经常调用
}
}
class LinkQueue {
public static LinkedList<Object> queue = new LinkedList<Object>();
public static Set<Object> buffer = new HashSet<Object>();
public static void transfer(){
queue= new LinkedList(buffer);
}
}
就是把缓冲buffer里的数据复制到queue里,会经常调用,队列queue定义是静态的,每次复制完产生的多了那原来的对象会被回收吗?帮忙分析一下 展开
3个回答
展开全部
当调用transfer()方法时,上次queue指向的LinkedList就会变成垃圾,会在某个时间回收的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-08-21 · 知道合伙人软件行家
关注
展开全部
何为静态?在整个程序运行中,一直保留;当然也会看它所处的位置,成员变量还是局部变量。
追问
那就是之前所有的queue一直都在?java不是没有引用就被回收吗?那运行时间长久了会不会有内存溢出的可能啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询