0%
这是一片思考的空间 -- arthinking
Spring 重构&代码整洁之道 软件设计 JVM 并发编程 数据结构与算法 分布式 存储 网络 微服务 设计模式
Java技术栈 - 涉及Java技术体系

JVM速成手册

topic_jvm_l

无论你是跟同事、同学、上下级、同行、或者面试官讨论技术问题的时候,很容易卷入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 javac 1. 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界的性能优化高手 编译器 解释器 JIT 1. javac做了什么优化
2. Java后端编译器的发展史
3. JIT是如何工作的
4. 效率与质量的衡量

在整理这个专题的时候,出了一个高效学习的介绍文章,这里也推荐给大家:碎片化知识盛行,学东西如何做到过目不忘

欢迎关注我的其它发布渠道

订阅IT宅
内功修炼
Java技术栈
Java架构杂谈是IT宅精品文章公众号,欢迎订阅:
📄 网络基础知识:两万字长文50+张趣图带你领悟网络编程的内功心法 📄 HTTP发展史:三万长文50+趣图带你领悟web编程的内功心法 📄 HTTP/1.1:可扩展,可靠性,请求应答,无状态,明文传输 📄 HTTP/1.1报文详解:Method,URI,URL,消息头,消息体,状态行 📄 HTTP常用请求头大揭秘 📄 HTTPS:网络安全攻坚战 📄 HTTP/2:网络安全传输的快车道 📄 HTTP/3:让传输效率再一次起飞 📄 高性能网络编程:图解Socket核心内幕以及五大IO模型 📄 高性能网络编程:三分钟短文快速了解信号驱动式IO 📄 高性能网络编程:彻底弄懂IO复用 - IO处理杀手锏,带您深入了解select,poll,epoll 📄 高性能网络编程:异步IO:新时代的IO处理利器 📄 高性能网络编程:网络编程范式 - 高性能服务器就这么回事 📄 高性能网络编程:性能追击 - 万字长文30+图揭秘8大主流服务器程序线程模型
📄 Java内存模型:如果有人给你撕逼Java内存模型,就把这些问题甩给他 📄 一文带你彻底理解同步和锁的本质(干货) 📄 AQS与并发包中锁的通用实现 📄 ReentrantLock介绍与使用 📄 ReentrantReadWriteLock介绍与使用 📄 ReentrantLock的Condition原理解析 📄 如何优雅的中断线程 📄 如何优雅的挂起线程 📄 图解几个好玩的并发辅助工具类 📄 图解BlockingQueue阻塞队列
📄 消息队列那么多,为什么建议深入了解下RabbitMQ? 📄 高并发异步解耦利器:RocketMQ究竟强在哪里? 📄 Kafka必知必会18问:30+图带您看透Kafka
📄 洞悉MySQL底层架构:游走在缓冲与磁盘之间 📄 SQL运行内幕:从执行原理看调优的本质 📄 洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法