12 2018 档案

摘要:内存分配与回收策略 (一)内存分配策略 给谁分配?分配到哪?是内存分配策略必须解答的问题。 java对象是分配的对象,往大方向来说,是分配到堆中,更细一点说,根据对象不同的特点分配到新生代和老年代区域。如果启动了本地线程分配缓冲,就按线程优先在TLAB上分配。 一、新生代区域的分配 新创建出来的对象 阅读全文
posted @ 2018-12-07 10:15 1码归1码 阅读(123) 评论(0) 推荐(1)
摘要:各类垃圾收集器与GC日志 (一)垃圾收集器 一、Serial收集器 最基本、历史最悠久的收集器。使用复制算法,用在新生代,通常老年代用Serial old配合。GC过程需要stop the world。适用于client模式下的虚拟机。 二、ParNew收集器 Serial多线程版本,采用复制算法时 阅读全文
posted @ 2018-12-06 22:06 1码归1码 阅读(130) 评论(0) 推荐(1)
摘要:垃圾收集算法 java中的内存是交给虚拟机管理的。要实现垃圾回收,必须考虑如下三个问题: 1. 哪些内存需要回收? 2. 什么时候回收? 3. 怎么回收? 对于第一点,往大了来说,是堆和方法区的内存需要回收。往具体了来说,是堆中哪些对象的内存可以回收了?方法区中哪些类的信息的内存可以回收了?要解答这 阅读全文
posted @ 2018-12-06 09:55 1码归1码 阅读(160) 评论(0) 推荐(1)
摘要:(一)java中的内存区域 在java虚拟机执行java程序的时候,会将虚拟机所管理的内存划分为以下几个区域: 其中,浅颜色的是线程私有的内存区域,即java程序中每个线程都有的独立区域;深色的是共有的区域。 一、线程私有区域 1. java虚拟机栈 虚拟机栈中描述得是java方法执行的内存模型,虚 阅读全文
posted @ 2018-12-04 09:19 1码归1码 阅读(171) 评论(0) 推荐(1)