-
JVM系列【2】Class文件结构
JVM系列笔记目录
- 虚拟机的基础概念
- class文件结构
- class文件加载过程
- jvm内存模型
- JVM常用指令
- GC与调优
如何查看class字节码文件
在idea中可以通过插件BinEd
来查看二进制或十六进制文件。展示一个简单类的class文件源字节码,看不懂?请往下看。
更直观一点的可以在idea中安装插件jclasslib
,选中类文件->View-> Show Bytecode With jclasslib。该插件清楚地看到.class
文件的各个组成部分。
另外一种方式,通过javap
查看。
Class文件结构
文件结构由16个部分组成,约定下u4指占用的字节数为4,u2同理。这里指简单说明各个部分的含义,不做详细展开,如想深入了解,参考 JVM规范第4章节The class
File Format
- Magic Number class文件标志符 u4,ca fe ba be
- Minor Version class文件小版本号 u2
- Major Version 主版本号 u2,主版本+小版本号构成jdk版本,jdk8 默认 52.0,jdk7默认为51.0
- constant_pool_count 常量池的大小u2
- constant_pool 长度为constant_pool_count-1的数组,class文件中最复杂的部分
- access_flag 类修饰符
- this_class 类全名,指向常量池某个元素
- super_class 父类名 指向常量池的某个元素
- interface_count 实现的接口数量
- interfaces 接口
- fields_count 字段数量
- fields 字段
- method_count 方法数量
- methods 方法
- attribute_count 附加属性数量
- attributes 附加属性
总结
class
文件结构很复杂,本为只是作简单介绍,为 JVM系列【3】Class文件加载过程 和 JVM系列【4】内存模型作为基础知识点的铺垫。真正想深入理解class
文件结构的,请阅读官方JVM规范。
知识分享,转载请注明出处。学无先后,达者为先!
本文链接:
https://www.cnblogs.com/kongbubihai/p/13819022.html
栏目列表
最新更新
Python采集ip代理,并检测是否可用(仅用
用python实现微信、钉钉等软件多开
利用Python解决掉谷歌人机验证,全自动识
用python写一个自动生成春联的软件,打包
Python写的一个GUI界面的小说爬虫软件
用python爬取jk小姐姐照片慢慢看「本地直
超方便的 Python 自动唤醒窗口截图脚本
5个方便好用的Python自动化脚本
刚刚出炉的冬奥会吉祥物:冰墩墩,附源
没买抢冰墩墩,那咱们自己用python画一个
SQL分库分表
关于如何在window下执行SQLSERVER的定时备份
SQLServer高可用方案在企业生产环境的实践
SQL Server HA - 高可用性解决方案解决方案概
独家揭秘:SQL Server AlwaysOn在阿里云的突破
sqlserver数据库还原存储过程脚本
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
Ubuntu 16.04 更改系统语言为简体中文 ####
【JavaScript】笔记(7)--- JSON(对象的创建
大前端工程化之写一个简单的webpack插件
前端基础之JavaScript(二)
前端基础之JavaScript(一)
大前端JS篇之搞懂【WeakSet】
增删商品计算价格
【JavaScript】笔记(6)--- BOM(open 与 clo
【JavaScript】笔记(5)--- DOM(续)(复选
【JavaScript】笔记(4)--- DOM(初步)(获取文