安卓面试Java基础相关

JAVA基础-虚拟机和内存回收

2021-01-07  本文已影响0人  来lol里

虚拟机的组成

主要是由所有左边线程共享的方法区、堆,和线程单独所在的虚拟机栈、本地方法栈、程序计数器两部分组成。

image.png

再来看张图,其实内存的回收大部分是在共享内存区这一块的。


image.png

内存回收检查方法

想要回收垃圾需要先统计哪些是垃圾,现在主要的两种方式分别是 引数计数法和可达性分析,目前虚拟机基本都是采用可达性算法。

image.png

内存回收的算法

堆对象的的内存分配策略

image.png

对象优先在Eden分配,大对象直接进入老年代,长期存活的对象将进入老年代
动态对象年龄判定是否需要放入老年代。
新生代出发的GC叫做Minor GC,老年代触发的GC叫做Full GC。

四种引用方式

内存泄露、内存溢出、内存抖动

上一篇 下一篇

猜你喜欢

热点阅读