接近两个月左右没有写博客,主要是因为小孩过来后,回家比较忙,现在小孩端午送回家了,开始继续之前的JVM学习之路,前面学习了GC的算法和种类,那么本章则是基于算法来产生实际的用途,即垃圾收集器。 一、堆的回顾 新生代中的98%对象都是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是将内 ...
分类:
其他好文 时间:
2018-06-20 00:09:52
阅读次数:
212
使用Java那么久,在此总结一下Java中常见的内存溢出问题以及对应的解决思路 堆溢出 报错信息 报错原因 堆中(新生代和老年代)无法继续分配对象了; 某些对象的引用长期被持有没有被释放,垃圾回收器无法回收; 使用了大量的 Finalizer 对象,这些对象并不在 GC 的回收周期内。 解决办法 将 ...
分类:
编程语言 时间:
2018-06-12 23:33:09
阅读次数:
309
java虚拟机 什么时候会触发full gc 可以作为root的对象: 例子:下述的Something和Apple都可以作为root对象。 Java方法的参数和方法中的局部变量,可以作为root. 新生代转移到老年代的触发条件 redis redis单线程问题 单线程指的是网络请求模块使用了一个线程 ...
分类:
编程语言 时间:
2018-06-07 21:55:44
阅读次数:
215
程序运行时配置如下参数: 最终,程序输出: GC日志分析: 1、最前面的数字 "0,070" 代表了GC发生的时间,这个数字的含义是从Java虚拟机启动以来经过的秒数 2、GC日志开头的“[GC 和 [Full GC” 说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是年老代GC的。 3、P ...
分类:
其他好文 时间:
2018-05-30 21:13:26
阅读次数:
163
1 内存溢出 1.1 堆内存溢出(outOfMemoryError:java heap space) 堆中的内存是用来生成对象实例和数组的,堆主要由新生代(eden区和两个survivor区组成)老年代、永久代。 a、由内存泄露导致,内存溢出 b、无法申请到足够的空间存放而导致的错误 1.2 方法区 ...
分类:
其他好文 时间:
2018-05-27 20:53:49
阅读次数:
163
垃圾回收器的实现: 1.让用户都暂停,不再产生垃圾,就去收集垃圾。新生代用复制算法清理垃圾,老生代用标记整理算法搜集垃圾。 ...
分类:
其他好文 时间:
2018-05-26 22:18:16
阅读次数:
177
Java堆中是JVM管理的最大一块内存空间。主要存放对象实例。 在JAVA中堆被分为两块区域:新生代(young)、老年代(old)。 堆大小=新生代+老年代;(新生代占堆空间的1/3、老年代占堆空间2/3) 新生代又被分为了eden、from survivor、to survivor(8:1:1) ...
分类:
编程语言 时间:
2018-05-25 13:59:08
阅读次数:
247
前言 在 "深入浅出 JVM GC(2)" 中,我们介绍了一些 GC 算法,GC 名词,同时也留下了一个问题,就是每个 GC 收集器的具体作用。有哪些 GC 收集器呢? 1. Serial 串行收集器(只适用于堆内存 256M 以下的 JVM ) 2. ParNew 并行收集器(Serial 收集器 ...
分类:
其他好文 时间:
2018-05-20 00:46:17
阅读次数:
148
基于WebAPI的开放平台架构实践 https://www.cnblogs.com/lucky_hu/p/9030667.html 新生代码农如何在硝烟弥漫的商业丛林中生存和崛起? 洞见,让一部分先遇见未来。 关注公众号“码农商业参谋",获取更多技术干货和商业新风向。 背景 随着业务的发展,越来越多 ...
分类:
其他好文 时间:
2018-05-18 22:49:55
阅读次数:
198
文章出处:http://ifeve.com/jvm-yong-generation/ 聊聊JVM的年轻代 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的 ...
分类:
其他好文 时间:
2018-05-18 15:40:27
阅读次数:
159