前言
前言
JVM 真的是学完忘。忘了学 因为很少去用 工作中很少接触 但是又是一个必须了解的都东西 复习整理必不可少
JVM 架构
Java 源码通过 javac 编译为 Java 字节码 ,Java 字节码是 Java 虚拟机执行的一套代码格式,其抽象了计算机的基本操作。大多数指令只有一个字节,而有些操作符需要参数,导致多使用了一些字节。

JVM 的基本架构如上图所示,其主要包含三个大块:
- 类加载器:负责动态加载Java类到Java虚拟机的内存空间中。
- 运行时数据区:存储 JVM 运行时所有数据
- 执行引擎:提供 JVM 在不同平台的运行能力
相信大部分人都知道JVM是什么,定义很简单,就是Java虚拟机的缩写,一种用于计算设备的规范,是一个虚构出来的计算机。但是对于如何运行、处理的细节,大部分人可能就觉得没那么简单了。
今天,我们就来介绍一本学习JVM设计原理及实现的秘籍,相信你看过以后一定会有所收益的。

目录
第1章Java虚拟机概述
从机器语言到Java——詹爷,你好兼容的选择: 一场生产力的革中间语言翻译从中间语言翻译到机器码通过C程序翻译直接翻译为机器码;本地编译神奇的指令常见汇编指令JVM指令本章总结

第2章Java执行引擎工作原理:方法调用
方法调用真实的机器调用C语言函数调用JVM的函数调用机制函数指针CallStub函数指针定义Call stub_ entry例程

第3章Java数据结构与面向对象
从Java算法到数据结构数据类型简史Java数据结构之偶然性Java类型识别class字节码概述魔数与JVM内部的int类型常量池与JVM内部对象模型大端与小端大端和小端的概念大小端产生的本质原因大小蟥验证大端和小端产生的场景如何解决字节序反转大小端问题的避免JVM对字节码文件的大小端处理

第4章 Java字节码实战
字节码格式初探准备测试用例使用javap命令分析字节码文件查看字节码二进制魔数与版本魔数版本号常量池常量池的基本结构JVM所定义的11种常量常量池元素的复合结构常量池的结束位置常星池元素总数量第一个常量池元素第二个常量池元素父类常量变量型常量池元素访问标识与继承信息access. flagsthis, classsuper classinterface字段信息fields_ countfield. info fields[fields. count]方法信息methods_ countmethod info methods[methods count]本章回顾

第5章常量池解析:
常量池内存分配oop-klass模型常量池klass模型(1)常量池klass模型(2)常量池解析

第6章类变量解析
美变量解析偏移量从源码看字段继承

第7章Java栈帧entry_ point例程生成局部变量表创建堆栈与栈帧JVM的栈帧栈帧深度与slot复用最大操作数栈与操作数栈复用

第8章类方法解析
方法签名解析与校验方法属性解析创建methodOopJava方法属性复制<clinit>与< init>查看运行时字节码指令vtable

第9章执行引擎
执行引擎概述取指译码栈顶缓存栈式指令集操作数栈在哪里栈帧重叠entry_ point例程机器指令执行引擎实战字节码指令实现

第10章类的生命周期
类的生命周期概述类加载类的初始化类加载器类实例分配

部分细节展示



本文详细介绍了JVM的架构,包括类加载器、运行时数据区和执行引擎。讲解了从Java源码到字节码的过程,以及方法调用的机制。此外,还探讨了数据结构、字节码实战、常量池解析、类变量和方法解析等内容,旨在帮助读者掌握JVM的工作原理。
5196

被折叠的 条评论
为什么被折叠?



