摘要: Dalvik与JVM的区别 Dalvik是Android独有的虚拟机。 Dalvik对比JVM,将JVM里面的栈帧里面的局部变量表和操作数栈合并了。 Dalvik Android2.2版本 JIT(just in time) JIT即使变异,将.dex文件信息读成机器码,但编译好的机器码是临时的而不 阅读全文
posted @ 2020-11-22 21:39 金大人的梦 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 常量池(存在于方法区)静态常量池运行时常量池 String str = "abc";首先JVM会去常量池里面找是否有"abc"这个字符串的引用,如果有则直接返回常量池中字符串的引用,如果没有则在常量池创建"abc"常量并添加引用 String str = new String("abc")首先JVM 阅读全文
posted @ 2020-11-22 14:29 金大人的梦 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 判断对象存活: 可达性分析(python使用的是引用记数法)可达性分析:只要你与GC roots有链式关联,则表示对象是存活状态 新生代(eden、from、to)复制回收算法由于大部分对象都会被回收,因此eden、from、to的空间比例为8:1:1当eden区进行垃圾回收的时候,存活下来的对象复 阅读全文
posted @ 2020-11-22 12:10 金大人的梦 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 类加载 | |new指令 | 检查加载(失败返回类加载) | | | 分配内存(指针碰撞、空闲碎片列表、) | | | 内存空间初始化(值的初始化 例如:boolean=false) | | | 设置(对象头,类型等) | | | 初始化 | | | 逃逸分析——满足逃逸分析,分配到栈 | |不满足 阅读全文
posted @ 2020-11-22 10:20 金大人的梦 阅读(53) 评论(0) 推荐(0) 编辑
摘要: java文件经过编译变成class文件,通过类加载器加载到JVM里面运行 JVM里面有一个重要组成部分就是运行时数据区 运行时数据区包括线程共享部分(堆、方法区),和线程私有部分(程序计数器、本地方法栈、虚拟机栈) 堆:存放对象实例 有eden区、from区、to区、老年代区(内存分配比例 8:1: 阅读全文
posted @ 2020-11-22 09:25 金大人的梦 阅读(104) 评论(0) 推荐(0) 编辑