JVM速成手册

无论你是跟同事、同学、上下级、同行、或者面试官讨论技术问题的时候,很容易卷入JVM大型撕逼现场。为了能够让大家从大型撕逼现场中脱颖而出,最近我冥思苦想如何把知识点尽可能呈现的容易理解,方便记忆。于是就开启了这一系列文章的编写。

为了让JVM相关知识点能够形成一个体系arthinking将编写整理一系列的专题,以尽量以图片的方式描述相关知识点,并且最终把所有相关知识点串成了一张图。

image-20200214154250907

另外把文章列表和关键信息写到表格里面去了。

JVM系列文章

章节关键词相关思考
Java运行时数据区域是如何工作的JVM内存布局 对象访问定位1. JVM内存布局是怎么划分的?
2. JVM里面各个区直接是怎么配合工作的?
3. 对象在内存中是如何布局的?
4. 什么是操作数栈和局部变量表?可否在class文件中展示下?
5. 运行时常量和字符串常量有什么区别?
6. 对象访问定位方式有哪些?各有什么优点
Java垃圾回收机制可达性分析 垃圾收集算法 垃圾收集器1. 一个对象的一生经历了什么?
2. 如何判断对象是否可用?
3. 引用计数法和可达性分析算法各有什么优缺点?
4. 哪些对象可以作为GC ROOT?
5. 垃圾回收的时候如何快速寻找到根节点?(安全点和OopMap)
6. 垃圾回收算法有哪些?各有什么优缺点?
7. 有哪些垃圾手气,各有什么优缺点,适用什么场景
8. 何时触发MinorGC和MajorGC
9. 什么是空间分配担保
Java对象历险记分配担保 空间分配1. Java对象进入堆之后,它的一生都经历了什么?
Class文件十六进制背后的秘密Class文件 反汇编 堆栈原理1. 运行时常量池和静态常量池有什么区别?
2. Class文件里面都有什么内容?
3. Class文件反汇编之后的格式里面分别有什么,尝试解读里面方法中的汇编指令
4. 本地变量表和操作数栈是如何工作的
一篇图文彻底弄懂Class文件是如何被加载进JVM的类加载器 加载 连接 初始化1. Class.forName究竟是怎么获取Class对象的Class对象又是什么?
2. Class文件是如何被加载到JVM里面的?
3. 类变量是存在堆中还是存在方法区中?
4. 类构造器<clinit>方法什么时候执行?
一篇图文彻底弄懂类加载器与双亲委派机制类加载器 双亲委派机制1. 类加载器是怎么背创建出来的?
2. 什么是双亲委派机制?为什么要有这种机制?
3. Class实例和类加载器究竟是在Java Heap中,还是在方法区中?
4. 为何要有线程上下文类加载器
Java最大栈深度有多大堆栈1. Java最大栈深度多大
2. 程序中如何调优
Java代码编译方式和JVM三种执行模式JIT javac1. Java代码编译方式有哪些?
2. JVM执行方式有哪些?
JVM是如何进行方法调用的静态分派 动态分派1. JVM里面是如何进行方法调用的?
2. 什么是静态分派?
3. 什么是动态分派?
4. 怎么保证动态分派的执行效率?
5. 重写和重载的执行原理?
10分钟教你如何hack掉Java编译器编译流程 javac JIT 注解处理器1. 编译器一般编译流程
2. javac的编译流程是怎样的
3. 如何hack掉Java编译器
4. 运行时DI和编译期DI的区别
深入探索Java泛型的本质泛型1. 为什么需要泛型
2. Java代码在编译后是如何保存泛型信息的
3. Java泛型与C++、Python中的有何区别
4. 如何动态获取泛型类型
Java界的性能优化高手编译器 解释器 JIT1. javac做了什么优化
2. Java后端编译器的发展史
3. JIT是如何工作的
4. 效率与质量的衡量
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值