前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM class文件格式

JVM class文件格式

作者头像
lovelife110
发布2021-02-24 16:20:39
7920
发布2021-02-24 16:20:39
举报
文章被收录于专栏:爱生活爱编程爱生活爱编程

java从编码到执行

在这里插入图片描述
在这里插入图片描述

x.java 通过javac命令生成x.class x.class通过java命令执行。通过classloader load到内存。代码经常需要引用java类库,所以也需要通过classloader load到内存 装载完成后,会调用字节码解释器,或者JIT来进行解释或者编译 编译完成之后通过执行引擎开始执行 执行引擎对面的就是操作系统和硬件

class文件结构

数据类型

u1 u2 u4 u8和_info(表类型) _info的来源是hotspot源码中的写法 u指无符号, u1为一个字节(二进制8位,16进制2位,如CA), u2为两个字节

查看bytecode插件: IDEA插件 JClassLib

class结构

在这里插入图片描述
在这里插入图片描述

constant_pool_count被用来表示常量池的常量数,这里的常量池是从1开始索引的,因为第0项是用于某些指向常量池的索引值的数据在特定情况下表示“不引用任何一个常量池项目”的含义。

常量池的每一个常量都是一个表,表结构起始的第一位是个u1类型的标志位(tag),代表着当前常量属于哪种常量类型。

在这里插入图片描述
在这里插入图片描述

具体项,比如CONSTANT_Utf8_info,如下

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • java从编码到执行
  • class文件结构
    • 数据类型
      • class结构
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档