当前位置: 首页 > news >正文

JVM——类加载与字节码技术—类文件结构

 

由源文件被编译成字节码文件,然后经过类加载器进行类加载,了解类加载的各个阶段,了解有哪些类加载器,加载到虚拟机中执行字节码指令,执行时使用解释器进行解释执行,解释时对热点代码进行运行期的编译处理。 

1.类文件结构

  根据下面规范,魔数,两个版本,常量池信息,访问修饰,类名信息,父类信息,接口信息,类中成员变量,方法信息,类的附加属性信息。

加上-parameters参数会保留方法中参数的名称信息 

第一列是八进制的标号。

1.1魔数

不同的文件有不同的魔数信息。魔数用于标识文件是什么类型。

java选择"ca fe ba be"作为魔数。 

1.2 版本

 小版本是前两个,主版本是后两个,16进制的34对应10进制的52,对应jdk8。

1.3 常量池

经过翻译解读知道第二项是System.out,第三项是要打印的字符串常量,第四项表示是out中的println方法,参数和返回值类型是(String)void。

()V表示空参的void.

第五项解读出来就是cn/itcast/jvm/t5/HelloWorld   本类信息

第六项是java/lang/Object     父类信息

开头加上L是引用类型

 

 

 

 这里讲的什么狗屎?总之一共34项记录了常量池里面各种信息。

这里可以去对照深入理解java虚拟机第三版中的、第222页的常量池中的17种数据类型的结构总表来看。

1.4访问标识与继承信息

接下来到访问修饰到接口这部分的描述

知道29 56都是常量池相关内容 

访问修饰部分通过查表知道00 21 是下面表中01+20,是一个public 类。

 

1.5 Field 信息

成员变量信息

 java中为使字节码更加紧凑使用了更简洁的字符表示类型信息,如B表示byte。

L ClassName表示引用类型,【表示一维数组

 

1.6Method 信息

这里方法信息较为复杂的,需要了解反编译。

 了解即可......什么狗屎?

上面是init方法的解读........main方法不看了

看不懂是因为byd没有把那几个映射表拿出来,前面的常量有常量结构表,变量、方法、属性都有对应的映射表,告诉你各个类型用什么十六进制表示,然后这些类型由多少个十六进制组成

1.7 附加属性

蚌埠住了,直接跳了 

去搜一下jvm类文件结构,看看其他的视频先。

了解即可

了解即可

了解即可

http://www.lryc.cn/news/143657.html

相关文章:

  • C语言学习之main函数两个参数的应用
  • 本地部署 Stable Diffusion(Windows 系统)
  • Java源码分析(二)Double
  • 文件上传漏洞之条件竞争
  • javacv基础04-图像色彩空间转换函数Imgproc.cvtColor()(彩图转灰度图示例)
  • Spring Boot进阶(60):5种判断线程池任务是否全部完成的方案 | 实用技巧分享!
  • Git相关介绍和操作
  • IDEA配置热启动
  • 【附安装包】Fireworks CS6安装教程
  • 深度学习-4-二维目标检测-YOLOv3理论模型
  • 通俗理解DDPM到Stable Diffusion原理
  • 如何基于自己训练的Yolov5权重,结合DeepSort实现目标跟踪
  • C#_委托详解
  • R包开发-2.2:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)
  • 基于数据湖的多流拼接方案-HUDI实操篇
  • Spring MVC 四:Context层级
  • 【C++ 学习 ⑱】- 多态(上)
  • 合宙Air724UG LuatOS-Air LVGL API控件--进度条 (Bar)
  • 图神经网络与分子表征:番外——基组选择
  • rabbitmq笔记-rabbitmq客户端开发使用
  • 13.Oracle中nvl()与nvl2()函数详解
  • 设置某行被选中并滚动到改行
  • React钩子函数之useRef的基本使用
  • 无风扇迷你电脑信息与购买指南
  • 比特币是怎么回事?
  • vue3+ts+uniapp小程序端自定义日期选择器基于内置组件picker-view + 扩展组件 Popup 实现自定义日期选择及其他选择
  • Java进阶篇--泛型
  • android framework之Applicataion启动流程分析
  • Linux Day10 ---Mybash
  • Flask-Sockets和Flask-Login联合实现websocket的登录认证功能