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

news2024/10/7 8:48:38

 

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

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.coloradmin.cn/o/912880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题:leetcode 849 到最近的人的最大距离

给你一个数组 seats 表示一排座位,其中 seats[i] 1 代表有人坐在第 i 个座位上,seats[i] 0 代表座位 i 上是空的(下标从 0 开始)。 至少有一个空座位,且至少有一人已经坐在座位上。 亚历克斯希望坐在一个能够使他与…

同步、异步无障碍:Python异步装饰器指南

一、引言 Python异步开发已经非常流行了,一些主流的组件像MySQL、Redis、RabbitMQ等都提供了异步的客户端,再处理耗时的时候不会堵塞住主线程,不但可以提高并发能力,也能减少多线程带来的cpu上下文切换以及内存资源消耗。但在业务…

2023前端面试题整理

前端面试大全整理 算法 n维数组旋转 90 度算法 export const rotate function (matrix: number[][]) {let n matrix.length// matrix[x][y] > matrix[y][n - 1 - x]const changeItem (num: number, x: number, y: number, rodateTime: number, isOnce?: boolean) >…

微信小程序裁剪图片成圆形

概述 分装的图片剪裁组件,可以把图片剪裁成圆形,主要思路就是使用canvas绘图,把剪裁的图片绘制成圆形,另外剪裁图片的窗口还可以移动放大缩小 详细 前言 最近在开发小程序,产品经理提了一个需求,要求微…

Java Web项目中spring.xml或springmvc.xml配置文件中出现名称空间爆红

在做项目的过程中,通常需要配置spring.xml或者springmvc.xml等配置文件,但是会出现名称空间爆红的情况,如下所示: 解决方法:打开Settings ——> Schemas and DTDs 然后添加爆红的语句即可

PSP - 蛋白质结构预测 AlphaFold2 的结构模版 (Template) 搜索与特征逻辑

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132427617 结构模版 (Template) 是一种已知的蛋白质结构,可以作为 AlphaFold2 蛋白质结构预测的参考,AlphaFold2 可以从多…

构建系统自动化-autoreconf

autoreconf简介 autoreconf是一个GNU Autotools工具集中的一个命令,用于自动重新生成构建系统的配置脚本和相关文件。 Autotools是一组用于自动化构建系统的工具,包括Autoconf、Automake和Libtool。它们通常用于跨平台的软件项目,以便在不同…

AIR001开箱测试

最近,合宙的动作还是挺大的,又出了两款AIR001和RP2040,而且前段时间还出了AIR32F103系列,记的21年要采购STM32F1103的时候,1片的价格从开发时的5块涨到了生产阶段的100多,即使最后无奈采用了别的芯片&#…

容器化微服务:用Kubernetes实现弹性部署

随着云计算的迅猛发展,容器化和微服务架构成为了构建现代应用的重要方式。而在这个过程中,Kubernetes(常简称为K8s)作为一个开源的容器编排平台,正在引领着容器化微服务的部署和管理革命。本文将深入探讨容器化微服务的…

LeetCode150道面试经典题-- 二叉树的最大深度(简单)

1.题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 2.示例 3.思路 深度优先遍历 一个二叉树要查询到最大深度,可以将问题转为从根节点出发,查看左右子树的最大深度&am…

php 系列题目,包含查看后端源代码

一、弱类型比较问题 原则: 1.字符串和数字比较,字符串回被转换成数字。 "admin" 0(true) admin被转换成数字,由于admin是字符串,转换失败,变成0 int(admin)0,所以比较结果是ture 2.混合字符串转…

opencv 进阶17-使用K最近邻和比率检验过滤匹配(图像匹配)

K最近邻(K-Nearest Neighbors,简称KNN)和比率检验(Ratio Test)是在计算机视觉中用于特征匹配的常见技术。它们通常与特征描述子(例如SIFT、SURF、ORB等)一起使用,以在图像中找到相似…

【C#学习笔记】匿名函数和lambda表达式

文章目录 匿名函数匿名函数的定义匿名函数作为参数传递匿名函数的缺点 lambda表达式什么是lambda表达式闭包 匿名函数 为什么我们要使用匿名函数?匿名函数存在的意义是为了简化一些函数的定义,特别是那些定义了之后只会被调用一次的函数,与其…

【Unity3D赛车游戏制作】初步导入,资源很哇塞【一】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

位运算相关总结

371. 两整数之和 给你两个整数 a 和 b ,不使用 运算符 和 - ​​​​​​​,计算并返回两整数之和。 class Solution { public:int getSum(int a, int b) {while (b ! 0) {// 计算进位:将 a 和 b 进行位与操作,然后左移 1 位。u…

ExoPlayer如何使用MediaExtractor的思路

本文主要针对于,自己的设备解码能力(比如底层集成ffmpeg 、qti、android 、需要付费的格式等等)大于ExoPlayer自己封装的固有Extractor,基于现在Android架构通俗的来说,就是MediaPlayer可以播,但是ExoPlaye…

解码客厅:知名设计师带你探索其历史与设计风格

会客厅又称接待室,,它们是宾客和家人享受下午或晚上娱乐时光的天然聚会场所。由于会客厅反映了每个家庭的个性,因此在家具和设计上花费了很多心思。装饰品、复古艺术品、三角钢琴以及雕塑和花瓶等其他装饰元素在今天的会客厅中已司空见惯。 下…

UE4 地形编辑基础知识 学习笔记

之前自己写过这样的功能,今天看到一个UE现成的 点击地形,选择样条 按住CTRL键点击屏幕中某一个点会在场景内生成一个这样的图标 再点两次,会生成B样条的绿线条 点击号再选择一个模型,会生成对应的链条状的mesh 拉高最远处的一个图…

2023国赛数学建模思路 - 案例:粒子群算法

文章目录 1 什么是粒子群算法?2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法? 粒子群算法(Pa…

无涯教程-PHP - preg_split()函数

preg_split() - 语法 array preg_split (string pattern, string string [, int limit [, int flags]]); preg_split()函数的操作与split()完全相同,只不过正则表达式被接受为pattern的输入参数。 如果指定了可选的输入参数limit,则仅返回子字符串的限…