5 安卓面试总结——Java 虚拟机 I

安卓面试总结(4)——Java 多线程II
上一篇写了多线程、锁机制的内容,写的不是很详细,需要配合一些知识来回顾,但是看完后应该会有一个大概了吧 。接下来的 JVM 有点复杂,可能安卓也用不到,但是能够说清楚的话,面试还是有一定优势吧,至少肚子里有东西,不会慌,有利于提高信心 。
一、运行时数据区域
又是别人的图啊,这个很简洁明了 。
程序计算器
Java 虚拟机栈

5  安卓面试总结——Java 虚拟机 I

文章插图
本地方法栈:为本地方法服务
堆:
方法区:
运行时常量池:也是方法区的一部分
直接内存
二、垃圾收集 针对目标:堆和方法区,线程部分会随线程结束而消失(面试被问了,居然没记住)判断一个对象是否可被回收可达性分析算法(JVM使用):三、方法区的回收 方法区主要存放永久代对象(JDK1.8 后移到堆、内存),回收率低主要是对常量池的回收和卸载(为避免内存溢出,大量使用反射和动态代理 JVM 需要类卸载)四、()
当一个对象可被回收时,() 会被执行,但有且只有一次(可以使用引用自救一次)
5  安卓面试总结——Java 虚拟机 I

文章插图
五、引用类型六、垃圾收集算法 标记 - 清除标记 - 整理复制分代收集七、垃圾收集器
概述
CMS 收集器:以获得最短回收时间为目标的收集器
G1 收集器
收集器:单线程收集器,效率高
收集器: 的多线程版(新生代默认)
【5安卓面试总结——Java 虚拟机 I】 :多线程收集器,可控制吞吐量停顿时间