• 2022年了还不懂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方法属性复制与< init>查看运行时字节码指令vtable

    第9章执行引擎

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

    第10章类的生命周期

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

    部分细节展示

  • 相关阅读:
    怎么在插件列表中隐藏一个WordPress插件?
    0035【Python】小白学习Python大纲
    监控工具普罗米修斯(Prometheus)的介绍与安装
    visual studio2022使用tensorRT配置
    传统连接弊端分析、数据库连接池原理
    【安全】容器中二进制漏洞检测方案
    Centos搭建k8s集群
    java-net-php-python-jspm零担快跑物流管理系统计算机毕业设计程序
    建模杂谈系列177 APIFunc继续实践-比对研究
    【无标题】
  • 原文地址:https://blog.csdn.net/LBWNB_Java/article/details/127406302