最近在写web程序,根据需要写了一个缓存,用HashMap做的,大概如下
public class XXCache{ private HashMap<String,String> cache = new HashMap<>(); ... ... method(){ int i=0; ... } }
这个web程序run了两天没有任何请求,两条后我去操作这个缓存,其中的数据还在(缓存策略不会清除数据),当然如果不在的话就出问题了。
我的问题是为什么这个cache对象不会被JVM垃圾回收掉呢,是不是类对象不会轻易被回收呢,像method方法中的i局部变量是不是用完过后会马上被回收掉呢?
看过JVM相关的垃圾回收机制,当时感觉懂了,不过一看具体问题感觉还是不明白
慕莱坞森
当年话下