JVM规范系列第4章:Class文件格式
这一章节讲的是字节码的整个组成格式,读懂了这一章,就读懂了字节码文件。对于这一章的学习,我更推荐作为工具书去查找。最好是找一个最简单的Hello World例子,一个字节一个字节去分析其含义。在分析过程中,把这个章节当成工具来查询每个字节的含义。
我写了一篇文章来带你一个字节一个字节分析,有兴趣的可以看:JVM系列第5讲:字节码文件结构
Java 虚拟机实现会在文件的链接阶段(§ 5.4)对 Class 文件进行必要的校验。
看到这里,知道JVM会在文件的链接阶段,做JDK版本的校验。
这个章节除了对字节码格式的介绍之外,还介绍了一些JVM文件校验的东西,但这块内容晦涩难懂,并不适合单独阅读。读者可以简单读过,有个印象即可。等到真正遇到相关问题,再来深入了解。
JVM规范系列文章目录
- JVM规范系列开篇:为什么要读JVM规范?
- JVM规范系列第1章:引言
- JVM规范系列第2章:Java虚拟机结构
- JVM规范系列第3章:为Java虚拟机编译
- JVM规范系列第4章:Class文件格式
- JVM规范系列第5章:加载、链接与初始化
- JVM规范系列第6章:Java虚拟机指令集
- JVM规范系列:总结
JVM规范系列第4章:Class文件格式的更多相关文章
- JVM规范系列第1章:引言
如果你还没下载<Java虚拟机规范>这本书,那么先点击这里下载再一块儿看吧. 前言 Java 虚拟机是一个抽象化的机器,整个规范中提及的 Java 虚拟机都是抽象化的概念,而不是特指 Or ...
- JVM规范系列第2章:Java虚拟机结构
本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种(译者注:包括 Oracle 公司自己的 HotSpot 和 JRockit 虚拟机)被广泛使用的虚拟机实现. 记住:JVM规范是一种高度抽象行为 ...
- JVM规范系列第3章:为Java虚拟机编译
Oracle 的 JDK 包括两部分内容:一部分是将 Java 源代码编译成 Java 虚拟机的指令集的编译器,另一部分是用于Java 虚拟机的运行时环境. 第一部分应该说的是 Javac 这个前置编 ...
- JVM规范系列第5章:加载、链接与初始化
加载是根据特定名称查找类或接口类型的二进制表示(Binary Representation),并由此二进制表示创建类或接口的过程. 加载,就是指去寻找类或接口的过程. 链接是为了让类或接口可以被 Ja ...
- JVM规范系列第6章:Java虚拟机指令集
一条 Java 虚拟机指令由一个特定操作的操作码和零至多个操作所使用到的操作数所构成. 虚拟机指令 = 操作码 + 操作数. 其中,操作码值分别为 254(0xfe)和 255(0xff),助记符分别 ...
- JVM规范系列开篇:为什么要读JVM规范?
许多人知道类加载机制.JVM内存模型,但他们可能不知道什么是<Java虚拟机规范>.对于Java开发来说,<Java虚拟机规范>才是最为官方.准确的一个文档,了解这个规范可以让 ...
- JVM规范系列:总结
我们花了几天的时间来阅读<Java虚拟机规范>,了解要实现一个虚拟机应该包括什么内容.通过这么一次阅读,我们大致了解了虚拟机规范的内容. 第1章.对Java虚拟机进行了一些简单的介绍. 第 ...
- JVM虚拟机系列(三)Class文件格式
- JVM基础系列第7讲:JVM 类加载机制
当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析.运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制.JVM 虚拟机执行 class 字节 ...
随机推荐
- Fragment 中 ListView绑定ContextMenu
package com.example.administrator.imbobo.controller.fragment; import android.content.BroadcastReceiv ...
- January 11th, 2018 Week 02nd Thursday
Live, travel, adventure, bless, and don't be sorry. 精彩地活着,不停地前行,大胆冒险,心怀感激,不留遗憾. Everything we do is ...
- Java客户端连接kafka集群报错
往kafka集群发送消息时,报错如下: page_visits-1: 30005 ms has passed since batch creation plus linger time 加入log4j ...
- el-table-column v-if条件渲染报错h.$scopedSlots.default is not a function
我们在实际项目中经常会遇到el-table-column条件渲染出现报错的情况 报错内容: h.$scopedSlots.default is not a function 究其原因,是因为表格是el ...
- wifi 安卓手机
通过wifi向服务器端发送数据 https://www.cnblogs.com/zhaoxinshanwei/p/3573813.html http://www.hx-wl.com.cn/51wifi ...
- Rinkeby中测试币的申请
https://www.rinkeby.io/#faucet 从这个页面可以看见测试币的请求是有要求的,下面说明怎么做: 之前使用的是google账号,即第二种方式来获取.后面gmail出现了问题,一 ...
- CentOS 7.X 系统安装及优化
centos的演变 启动流程sysvinit 串行启动:一次一个,一个一个启动 并行启动:全部的一起启动 init优点 运行非常良好.主要依赖于shell脚本 init缺点 1.启动慢 2.容易夯住, ...
- 【opatch打补丁】oracle10.2.0.5.0升级10.2.0.5.9 for linux
https://wenku.baidu.com/view/c38702b56edb6f1afe001f59.html 这篇文章也不错,可参考 任务:oracle 10.2.0.5.0 打补丁升级 ...
- 查看linux服务器的配置
https://zhidao.baidu.com/question/489376921.html 1.查看逻辑CPU个数: #cat /proc/cpuinfo |grep "process ...
- <<linux device driver,third edition>> Chapter 4:Debugging Techniques
Debugging by Printing printk lets you classify messages accoring to their severity by associating di ...