JVM虚拟机
2021-10-20 12:14:29 29 举报
AI智能生成
登录查看完整内容
Android程序员学习JVM的路线图
作者其他创作
大纲/内容
逃逸分析
栈中分配对象
对象优先在Eden分配
大对象直接进入老年代
长期存活的对象进入老年代
对象年龄动态判定
空间分配担保
对象的分配策略
分代收集理论
实现简单、运行高效
内存复制、没有内存碎片
利用率只有一半
复制算法(Copying)
执行效率不稳定
内存碎片导致提前GC
标记-清除算法(Mark-Sweep)
对象移动
引用更新
用户线程暂停
没有内存碎片
标记-整理算法(Mark-Compact)
单线程垃圾收集器
多线程并行垃圾收集器
多线程并发垃圾收集器
Serial/Serial Old
ParNew
Parallel Scavenge(ParallerGC)/Parallel Old
JVM中常见的垃圾收集器
CMS垃圾回收器工作示意图
Stop The World现象
G1垃圾回收器
垃圾回收机制
字面量
符号引用
Class 文件常量池
运行时常量池
intern方法
字符串常量池
常量池
简述JVM内存结构
什么情况下内存栈溢出?
描述new一个对象的流程
Java对象会不会分配在栈中?
如果判断一个对象是否被回收,有哪些算法,实际虚拟机使用得最多的是什么?
GC收集算法有哪些?他们的特点是什么?
JVM中一次完整的GC流程是怎样的?
对象如何晋级到老年代?
Java中的几种引用关系,他们的区别是什么?
final、finally、finalize的区别?
String s = new String(“xxx”);创建了几个对象?
面试题
JVM的跨平台与语言无关性
Java程序从编译到执行的过程
Java SE体系架构
JVM 的大致运行过程
JVM 概述
虚拟机栈
局部变量表
操作数据栈
动态连接
返回地址
栈帧执行对内存区域的影响
栈帧
程序计数器
Java 方法运行的内存区域
本地方法栈
本地方法(Native)运行的内存区域
类信息
常量
静态变量
即时编译期编译后的代码
方法区/永久代
方法区
对象实例(几乎所有)
数组
Java 堆的大小参数设置
Java 堆
线程共享的区域
HSDB
JPS
JVM 查看工具
线程独享还是共享
空间大小
栈溢出
堆溢出
方法区溢出
本机直接内存溢出
内存溢出
深入辨析堆和栈
运行时数据区域
直接内存
编译优化技术——方法内联
栈的优化技术——栈帧之间数据的共享
虚拟机优化技术
检查加载
分配内存
CAS机制
本地线程分配缓冲 TLAB
并发安全
内存空间初始化
设置
对象初始化
虚拟机中对象的创建过程
对象头
实例数据
对其填充
对象的内存布局
使用句柄
直接指针
对象的访问定位
引用计数算法
可达性分析
Finalize方法
判断对象的存活
强引用
软引用 SoftReference
弱引用 WeakReference
虚引用 PhantomReference
四大引用
对象的创建
JVM虚拟机
0 条评论
回复 删除
下一页