关于JVM内存清理的问题
程序中存在内存泄漏,用Jprobe分析时发现一个问题
程序有个静态的哈希表:
public static HashMap<String, StudentVO> ccHashMap = new HashMap<String, StudentVO>();
我在ccHashMap中put了1000条记录,然后挨个remove掉。
我用Jprobe观察发现JVM中一直存在1000条StudentVO,Heap Count:1000。
尝试ccHashMap每次remove掉一条记录后调用System.gc();再用Jprobe观察就没有了。
请教这个地方是导致内存泄漏的地方吗?StudentVO为什么没有被自动回收掉?
程序有个静态的哈希表:
public static HashMap<String, StudentVO> ccHashMap = new HashMap<String, StudentVO>();
我在ccHashMap中put了1000条记录,然后挨个remove掉。
我用Jprobe观察发现JVM中一直存在1000条StudentVO,Heap Count:1000。
尝试ccHashMap每次remove掉一条记录后调用System.gc();再用Jprobe观察就没有了。
请教这个地方是导致内存泄漏的地方吗?StudentVO为什么没有被自动回收掉?
...全文
相关推荐
jvm内存状况查看
GC的主要任务是清理不再使用的对象,以便为新对象腾出空间。**输出GC日志**是分析JVM内存状况的首要步骤。这可以通过在JVM启动参数中添加特定选项来实现。例如,使用以下参数:1.
eclispe启动内存溢出问题
通过对JVM内存参数的合理配置、项目文件的清理以及使用高效插件等措施,可以有效地解决此类问题,从而确保Eclipse稳定运行。同时,了解和掌握这些技巧对于提高开发效率也具有重要意义。
图解JVM垃圾内存回收算法
然而,这种方法存在缺陷,即无法解决对象循环依赖的问题。可达性分析法是JVM中判断垃圾对象的主要方法。该方法的原理是,从GC Roots出发,标记所有可以到达的对象,然后将其余的对象标记为垃圾对象。
如何设置Tomcat的JVM虚拟机内存大小
设置Tomcat的JVM虚拟机内存大小是为了确保服务器能够高效地运行并避免因内存溢出而导致的性能问题或服务中断。内存溢出是由于程序在运行过程中需要的内存超过了JVM所能提供的最大内存。
浅谈Java堆外内存之突破JVM枷锁
* MajorGC:清理年老代的内存,这里一般采用的是标记清除+标记整理机制。


J2ME
