摘要: 3.1 标记-清除算法(Mark-Sweep) 标记-清除算法从根集合(GC ROOTS)进行扫描,对存活的对象进行标记,标记完毕后,再扫描整个空间中未被标记的对象,进行回收。标记清除算法不需要进行对象的移动,只需对不存活的对象进行处理,在存活对象比较多的情况极为高效,但由于标记-清除算法直接回收不 阅读全文
posted @ 2019-05-09 19:22 哼哼哼! 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 2.1.哪些内存需要回收? jvm的内存结构包含五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中,程序计数器、虚拟机栈、方法栈3个区域随线程而生,随线程而灭,因此这个区域的内存的回收都具备确定性,就不需要过多回收的问题,因为方法结束时,内存自然就跟着回收了,而java堆区和方法区不一样 阅读全文
posted @ 2019-05-09 19:22 哼哼哼! 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1、java中通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main menory,而每个线程又单独的you自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交由线程处理(操作码+操作数)。 (1)程序计数器 程序计数器(Program Counter 阅读全文
posted @ 2019-05-09 19:21 哼哼哼! 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 由于对象进行了分代处理,因此垃圾回收区域、时间也不一样。GC有两种类型:Scavenge GC和Full GC。 5.1Scavenge GC 一般情况下,当新对象生产,并且在Eden申请空间失败时,就会触发Scavenge GC,堆Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到S 阅读全文
posted @ 2019-05-09 19:21 哼哼哼! 阅读(1141) 评论(0) 推荐(0) 编辑