摘要: 目前没有完美的收集器,不同的厂商、版本的虚拟机提供的垃圾收集器会有很大的差别,用户根据自己应用特点和要求组合出各个年代所使用 的收集器。基于jdk1.7Update14之后的虚拟机。 官方文档:https://docs.oracle.com/javase/8/docs/technotes/guide 阅读全文
posted @ 2019-05-08 18:01 Diamond-Shine 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 什么样的对象需要回收 如果对象已经死亡了,就可以进行回收,判断方式如下 1).引用计数器:给对象添加一个计数器,有地方引用,就+1,当引用失效,就-1。当计数器为0时,判断对象不能再使用,但是当对象相互引 用的时候无法进行GC 1).可达性算法:从GC Roots开始,到对象之间有引用链相连,就是可 阅读全文
posted @ 2019-05-08 17:59 Diamond-Shine 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 学习了java运行时数据区,知道每个内存区域保存什么数据,可以参考:https://www.cnblogs.com/huigelaile/p/diamondshine.html,然后了 解内存溢出和内存泄露是很有必要的,一方面是为了面试,更重要是的在工作中能够快速定位错误原因并且解决 内存溢出分类: 阅读全文
posted @ 2019-05-08 16:35 Diamond-Shine 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 普通对象的创建(不包括数组和class对象): 当虚拟机遇到new指令时,会在常量池中检查是否包含这个类的符号引用(全限定名),通过这个确定是否经过类加载的过程,如果true,为该 对象分配内存,对象大小在类加载过程就已经确定。如果false,需要进行类加载。 分配内存 1、分配内存的方式: 指针碰 阅读全文
posted @ 2019-05-08 10:37 Diamond-Shine 阅读(373) 评论(0) 推荐(0) 编辑