![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
想养一只!
好好生活 慢慢相遇
展开
-
在开发中遇到过内存溢出么?原因有哪些?解决方法有哪些?
引起内存溢出的原因有很多种,常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 2.集合类中有对对象的引用,使用完后未清空,使得 JVM 不能回收; 3.代码中存在死循环或循环产生过多重复的对象实体; 4.使用的第三方软件中的 BUG; 5.启动参数内存值设定的过小; 内存溢出的解决方案: 第一步,修改 JVM 启动参数,直接增加内存。 第二步,检查错误日志,查看“O...原创 2020-03-09 18:02:48 · 588 阅读 · 0 评论 -
既然有 GC 机制,为什么还会有内存泄露的情况
理论上 Java 因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是 Java 被广泛使用于服务器端编程的一个重要原因)。 然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被 GC 回收,因此也会导致内存泄露的发生。 ...原创 2020-03-09 17:52:06 · 1451 阅读 · 0 评论 -
JVM 垃圾回收机制和常见算法
理论上来讲 Sun 公司只定义了垃圾回收机制规则而不局限于其实现算法,因此不同厂商生产的虚拟机采用的算法也不尽相同。 GC(Garbage Collector)在回收对象前首先必须发现那些无用的对象,如何去发现定位这些无用的对象? 常用的搜索算法如下: 引用计数器算法(废弃) 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当计数器为...原创 2020-02-27 18:31:35 · 138 阅读 · 0 评论