2022年了还不懂JVM?一文带你深入解析

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

前言

前言

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章类的生命周期

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

部分细节展示

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值