摘要: 一、垃圾回收算法: 引用计数 复制算法 标记-清除 标记-整理 二、垃圾回收的方式: 串行(Serial)、并行(Parallel)、并发(CMS)、G1 1、串行垃圾回收器(Serial) 它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程,所以不适合服务器环境。 2、并行垃圾回 阅读全文
posted @ 2019-07-06 21:53 与君共舞 阅读(1295) 评论(0) 推荐(0) 编辑
摘要: 一、OOM(OutOfMemoryError): 对象无法释放或无法被垃圾回收,造成内存浪费,导致程序运行速度减慢,甚至系统崩溃等严重后果,就是内存泄漏。多个内存泄漏造成可使用内存变少,会导致内存溢出。 代码问题new 一个很大对象,导致内存溢出。 也可能内存真的不足导致内存溢出。 二、考虑: 1、 阅读全文
posted @ 2019-07-06 17:17 与君共舞 阅读(1317) 评论(0) 推荐(0) 编辑
摘要: 在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。 不同的引用类型,主要体现的是对象不同的可达性状态和对垃圾收集的影响。 1 、强引用 我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关 阅读全文
posted @ 2019-07-06 11:36 与君共舞 阅读(2462) 评论(0) 推荐(0) 编辑
摘要: 1、-Xms 初始大小内存,默认为物理内存 1/64,等价于 -XX:InitialHeapSize 2、-Xmx 最大分配内存,默认为物理内存的 1/4,等价于 -XX:MaxHeapSize 3、-Xss 设置单个线程栈的大小,一般默认为 512-1024k,等价于 -XX:ThreadStac 阅读全文
posted @ 2019-07-06 10:29 与君共舞 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 一、什么是垃圾 内存中已经不再被使用到的空间就是垃圾 二、要进行垃圾回收,如何判断一个对象是否可以被回收? 引用计数法 很难解决对象之间的循环引用问题 枚举根节点做可达性分析 通过一系列名为“GC Roots”的对象作为起始点,从“GC Roots”对象开始向下搜索,如果一个对象到“GC Roots 阅读全文
posted @ 2019-07-06 08:10 与君共舞 阅读(11255) 评论(0) 推荐(1) 编辑