虚拟机 第六章 类文件结构

JVM之类文件结构(基于《深入理解Java虚拟机》之第六章类文件结构)(上) dsad最近十年内虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展,把我们编写的程序编译成二进制本地机器码(Native Code)已不再是唯一的选择,越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。 dsasadsdasdassadasdsadsdaasdasdassadasdasdasdsadasdasdsdadsadsadasdad——《深入理解Java虚拟机》 dsad在正式了解JAVA的类文件结构之前,我们应该先了解一下JAVA的发 阅读详情

6.2 无关性的基石
实现语言无关性的基础是虚拟机和字节码存储格式。各种语言都可以通过对应编译器转成class文件在虚拟机运行。
6.3class类文件的结构
class类文件对应唯一一个类或接口的定义信息,类或接口并不定都定义在文件里(也可以通过类加载器直接生成类或接口)
class文件是以8字节为基础单位的二进制流 ,各个数据项目严格按照顺序紧凑排列在class文件中。当数据项超过8位字节,则以‘big-endian’方式存储。
大端模式Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
小端模式Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
内存地址 Little-Endian Big-Endian
0x4000 0x78 0x12
0x4001 0x56 0x34
0x4002 0x34 0x56
0x4003 0x12 0x78

class文件只有两种数据类型:无符号数 和 表
无符号数以u1,u2,u4,u8分别表示1个字节,2个字节,4个字节,8个字节的无符号数,它可以用来描述数字、索引引用、数量值或者按照UTF-8编码构成字符串值。
表是由多个无符号数或者多个表组成的。习惯性以_info 结尾,整个class文件本质就是一张表,由一下数据项构成。

  • class文件格式
类型名称数量
u4magic1
u2minor_version1
u2major_version1
u2constant_pool_count1
cp_infoconstant_poolconstant_pool_count-1
u2access_flags1
u2this_class1
u2super_class1
u2interface_count1
u2interfacesinterface_count
u2fields_count1
field_infofieldsfields_count
u2methods_count1
method_infomethodsmethods_count
u2attributes_count1
attribute_infoattributesattributes_count
01-系统技术架构师必备——软件架构设计基础与核心概念 摘要 本文系统阐述了软件架构设计的核心概念与方法论,重点涵盖以下内容:1)软件架构的四大要素(构件、连接件、约束、配置)及其边界划分;2)Garlan & Shaw五大架构风格(数据流、调用/返回、独立构件、虚拟机、仓库)的典型应用场景;3)基于电商库存系统的架构选型实战案例,展示如何根据业务需求(高并发、最终一致性)选择事件驱动架构配合Saga模式;4)介绍ABSD、DSSA等主流架构方法论及ISO/IEEE标准体系。文章融合金融与互联网领域的架构实践经验,为技术架构师提供系统性的知识框架和决策参考。 阅读详情

相关推荐

ROS 2 Humble + Gazebo Fortress 搭建AGV小车仿真环境(保姆级避坑指南)

本文详细介绍了如何使用ROS 2 Humble和Gazebo Fortress搭建AGV小车仿真环境,包括环境准备、URDF模型构建、ROS 2控制集成、传感器配置等关键步骤。特别针对Gazebo Fortress版本差异提供了保姆级避坑指南,帮助开发者快速解决常见问题并优化性能。

weixin_29044157的博客 198

VMware虚拟机安装黑群晖DSM6.2 (转)

安装DSM6.2。和安装5.1的过程大致相同,只是在虚拟机的配置时有所不同。 需要用到的工具 Roadkil’s Disk Image – 写镜像工具:http://www.roadkil.net/program.php?ProgramID=12 DSM_DS3617xs_23739.pat – DMS镜像文件 synoboot.img – 引导镜像 云盘下载...

weixin_30569033的博客 9148

基于YOLOv5的隧道衬砌缺陷智能检测系统

计算机视觉在工程检测领域正发挥越来越重要的作用,特别是目标检测技术通过深度学习算法实现了对复杂场景的智能分析。YOLOv5作为当前主流的目标检测框架,通过改进网络结构和训练策略,可以显著提升检测精度和效率。在隧道工程领域,结合通道注意力机制和多尺度特征融合技术,能够有效解决衬砌缺陷识别中的小目标检测难题。这种AI检测系统相比传统人工判读地质雷达图像,不仅将效率提升20倍,还能将识别准确率提高到92.3%,特别适用于3cm以上结构缺陷的自动化检测。系统通过深度可分离卷积等优化,实现了模型轻量化,便于在边缘计算

weixin_29064103的博客 326

虚拟机vmware安装RedHat6.2系统教程(附图)

VMware Red Hat 6.2安装教程 注意事项: 1)笔记本请开启虚拟化:BIOS设置开启虚拟化(安装redhat6.2,因为是64位系统,需要按F1(F12)进入BIOS,开启虚拟化(在安全security下面的),如果要网络安装,需要在boot中开启PXE。)(注:这一步很多笔记本都默认开启了虚拟化,不需要操作) 2)硬件配置:内存2G,CPU1*1,硬盘20G (虚拟机的硬件配置,根据自己需求定制) 3)选择自定义安装:自己分区,给需要大容量的分区多分配一些空间 4)选择IDE(SI

strut的博客 2194

【v4l2】在Android SDK中交叉编译v4l2-ctl

为调试Android设备中camera的相关功能,需要引入v4l2-ctl工具。由于厂商提供的Android SDK源码中未集成v4l2-utils(包含v4l2-ctl以及其它组件的工具包),故需要下载v4l2-utils源码,并在Android SDK中交叉编译生成v4l2-ctl可执行文件。本文讲述其过程步骤。

rentong123的博客 1322

深度可分离卷积(DepthwiseSeparableConvolution):Depthwise卷积与Pointwise卷积

深度可分离卷积不用多说,在轻量级网络架构方面是一个绕不开的话题,只要接触深度学习多多少少会接触。深度可分离卷积即DepthwiseSeparableConvolution,该卷积将一个常规卷积过程划分成两个完成Depthwise卷积和Pointwise卷积,在保证输出一样时,计算量大大降低。首先来看,一个常规卷积是怎么实现的。其示意图如果我们从通道数变换的角度来看,卷积就是将3通道的tensor变为了4通道的tensor,我们来看看深度可分离卷积是怎么实现通道的变化的。...

xu.hyj 1万+

[深度理解java虚拟机]第六章 类文件结构

文章目录6.1 概述6.2 无关的基石6.3 Class类文件结构6.3.1 魔数与Class文件的版本6.3.2 常量池6.3.3 访问标志6.3.4 类索引、父类索引与接口索引集合6.3.5 字段表集合6.3.6 方法表集合6.3.7 属性表集合6.4 字节码指令简介6.4.1 字节码与数据类型6.4.2 加载和存储指令6.4.3 运算指令6.4.4 类型转换指令6.4.5 对象创建与访问指令...

qq_43115606的博客 2825

mac(apple silicon)arm64安装spm12详细教程

3.下载matlab runtime R2023b for macOS (macA64),注意必须下载这个,只下载matlab是不可以的。默认安装目录是/Applications/MATLAB/MATLAB_Runtime/R2023b。注意最后的命令,路径根据自己的matlab_runtime安装位置进行调整,然后就可以安装成功了。5. 解压spm12.zip,解压后将文件夹拖到应用程序下(Applications)2.下载spm12,这个版本可兼容mac芯片!6.打开mac终端,输入。

weixin_62332001的博客 2019

第六章 类文件结构-Class类文件的结构 《深入理解jvm虚拟机》

java虚拟机实现语言无关性,任何语言只要能最终编译生成java虚拟机能够识别的字节码文件,即可最终运行在java虚拟机上,实现语言无关性的的基础是虚拟机和字节码。 java语言实现跨平台,实际上是借助java虚拟机在不同平台上能够正常运行。 Class文件结构 Class文件是一组以8位字节为基础单位的二进制流,各个项目紧密排列,无间隔符号。当遇到需要占用8位字节以上空间的数据项时,则...

xuchuanliang11的博客 260

中国高精度年度平均气温栅格数据集(1901-2024)

本文基于中国月度平均气温栅格数据集,计算生成1901-2024年1km分辨率的年度平均气温数据集,并按中国省市行政区划进行裁剪。该数据集融合CRU全球数据和WorldClim高分辨率数据,经496个站点验证,具有高时空精度和长时间序列特点,覆盖全国(含港澳台)逾百年气温记录,为气候变化研究、生态水文分析及农业生产评估等提供重要数据支撑。数据格式为Tif,单位为0.1℃,可获取全国、各省及各市三个尺度的气温栅格数据。

PPdata_Academy的博客 1241

从零到千兆:KSZ9031 PHY芯片在Zynq PS端的驱动移植心路历程

本文详细记录了在Xilinx Zynq-7000平台(基于XC7Z020芯片)上,为KSZ9031千兆以太网PHY芯片移植LwIP协议栈驱动的完整过程。从硬件连接配置、Vivado工程设置到LwIP库的深度修改与调试,分享了解决PHY识别、自协商及性能优化等关键问题的实战经验,助力开发者实现稳定的千兆网络连接。

honey的博客 1104

深入理解Java虚拟机-第六章 类文件结构

第六章 类文件结构 6.1 概述 略 6.2 无关性的基石 因为想要实现 “Write Once,Run Anywhere”的伟大理想,Java 虚拟机被发明了出来。这些虚拟机都可以载入和执行同一种平台无关的程序存储格式——字节码(ByteCode),这就是构成无关性的基石。有的文章中只说明了平台无关性,我认为这也同样是语言无关性的基石。 平台无关性已是大家所熟知的,它指的是不论是在 Window...

雏鹰 710

小论文/大论文必备| YOLO26热力图可视化,支持8种常用热力图方法:GradCAM,GradCAMPlusPlus,XGradCAM,EigenCAM,HiResCAM等,助力小论文和大论文加分

本文介绍了如何为YOLO26模型添加热力图可视化功能,包括完整代码和使用教程。热力图能增强模型的可解释性,适用于论文中的实验对比和结果展示。文章提供了详细的代码实现,包含图像处理、热力图生成和结果可视化等功能,并指导用户如何创建Python文件、粘贴代码以及调整参数生成最佳热力图。通过设置不同层号,用户可以灵活控制热力图效果,最终结果将保存在指定文件夹中。

Ai缝合怪、助力小伙伴高效发论文 490

《深入理解java虚拟机》笔记——第六章 类文件结构

第六章 6.2 无关性的基石 实现语言无关性的基础仍然是虚拟机和字节码存储格式。java虚拟机不和包括java在内的任何语言绑定,它只和“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了java虚拟机指令集和符号表以及若干其他辅助信息。 6.3 Class类文件的结构 注意:任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口并不一定都得定义在文件

Ksszo的博客 569

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

《深入理解JAVA虚拟机》--第六章 类文件结构

与平台无关性实现在操作系统的应用层,各种不同平台的虚拟机与所有平台都统一使用的程序存储格式--字节码是构成平台无关性的基石 实现语言无关性的基础是虚拟机和字节码存储格式,使用Java编译器可以把Java代码编译为存储字节码的Class文件,使用其他语言的编译器也可以相应编译成Class文件,其他语言也可以在JAVA虚拟机中运行,虚拟机不关心Class的来源,只有符合Class文件应有的结构就可以

lskyne的专栏 1255

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深入理解Java虚拟机(第二版) 第六章:类文件结构

第六章 类文件结构6.1 概述6.2 Class类文件结构6.2.1 魔数与Class文件版本号6.2.2 常量池6.2.3 访问标志6.2.4 类索引、父类索引和接口索引集合6.2.5 字段表集合6.2.6 属性表集合 6.1 概述 Java虚拟机具有语言无关性的。而实现语言无关性的基础是虚拟机和字节码的存储格式,Java虚拟机已经不和包括Java语言在内的任何语言绑定。它只与“class”文件...

Lzc的博客 428

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

深入理解Java虚拟机——第六章——类文件结构

Java虚拟机不和包括Java在内的任何语言绑定,它只与Class文件这种特定的二进制文件格式所关联。 Class类文件结构 任何一个Class文件都对应着一个唯一一个类或接口的定义信息。但反过来说,类或接口不一定都得定义在文件里(可通过类加载器直接生成)。 Class文件是一组以8位字节为基础单位的二进制流。当数据占用8位字节以上,则会按照高位在前的方式(高位字节在地址最低位,...

weixin_30835933的博客 114

《深入理解java虚拟机》读书笔记 第六章 类文件结构

jvm的语言无关性 时至今日,商业机构和开源机构已经在Java语言之外发展出一大批在Java虚拟机之上 运行的语言,如Clojure、Groovy、 JRuby、 Jython、 Scala 等。 Java虚拟机只与"Class这种二进制文件"绑定。 Class类文件的结构 Class文件是一组以8位字节为基础单位的二进制流。 当遇到超过8位的数据项时,则会按照高位在前(大端)方式分割后存储。...

lik_lik的博客 2616

深入理解Java虚拟机----第六章:类文件结构

第六章:类文件结构 6.1概述 计算机只能识别0和1 虚拟机以及建立在虚拟机上语言的出现,使编写的程序编译成二进制本地机码(native code)非唯一选择,越来越多编程语言选择了与操作系统和机器指令集无关、平台中立的格式作为程序编译后的存储格式 6.2无关性的基石 虚拟机可以载入和执行同一种平台无关的字节码 各种平台不同的虚拟机和各个平台统一使用的程序存储格式-字节码(By...

youngerZeng 941

《深入理解java虚拟机》第六章 类文件结构

第六章类文件结构 6.2无关性的基石 各种不同平台的虚拟机与所有的平台都统一使用的程序存储格式--字节码(ByteCode)是构成平台无关性的基石。java虚拟机不和包括java在内的任何语言绑定,它只与“Class”文件这种特定的二进制文件格式所关联,Class文件包含了java虚拟机指令集和符号表以及若干其他辅助信息。虚拟机并不关心Class的来源是何种语言。 6.3...

weixin_30760895的博客 102

第六章 类文件结构(读深入理解jvm虚拟机,随记)

6.2 无关性的基石 标题为什么是无关性基石呢。时至今日,商业机构和开源机构已经在java语言之外发展出一大批在java虚拟机上运行的语言。如Clojure,Groovy,Scala等。 java虚拟机不和包括java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式有所关联。 java程序(*.java)------>javac编译器----...

HUANGHM19930309的博客 121

笔记:《深入理解Java虚拟机》第六章-类文件结构

类文件结构

sky的博客 727

深入理解java虚拟机----第六章 类文件结构

  代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 6.1 概述 由于最近十年内虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展,将我们编写的程序编译成二进制本地机器码(Native Code)已不再是唯一的选择,越来越多的程序语言选择了操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。 6.2 无关性的基石 ...

qq_40182703的博客 365

《深入理解Java虚拟机》(第三版)读书笔记(四):第六章 类文件结构

《深入理解Java虚拟机》(第三版)读书笔记(四):第六章 类文件结构 ​ ​ ​ ​ ​ ​ ​ 原书第三版的第五章是调优案例分析与实战,我是这样想的,把非理论偏实战的内容单独整理下,把理论部分的内容先啃完然后再动手试试,所以读书笔记直接到了第六章的部分,包括后面的博客如果涉及到书中的实战部分可能会跳过相应的章节。 文章目录《深入理解Java虚拟机》(第三版)读书笔记(四):第六章 类文件结构C...

NayelyA的博客 593

深入理解Java虚拟机(周志明第三版)- 第六章:类文件结构

系列文章目录 第一章: 走近Java 第二章: Java内存区域与内存溢出异常 第三章: Java垃圾收集器与内存分配策略 代码编译的结果是从本地机器码转变为字节码,是存储格式的一小步,却是编程语言发展的一大步系列文章目录一、概述二、无关性的基石三、Class类文件的结构四、字节码指令五、共有设计、私有实现六、Class文件结构的发展 一、概述 随着虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展, 把我们编写的程序编译成二进制本地机器码(Native Code)已不再是唯一的选择,

TA的博客 1249

《深入理解Java虚拟机》阅读笔记 第六章 类文件结构

常量池 常量池中主要存放两大类常量:字面量和符号引用。 字面量比较接近于java语言层面的常量概念,如文本字符串、被声明为final的常量值等。而符号引用则属于编译原理方面的概念,主要包括下面几类常量 1.被模块到处或者开放的包 2.类和接口的全限定名 3.字段的名称和描述符 4.方法的名称和描述符 5.方法句柄和棒法类型 6.动态调用点和动态常量 java代码在编译的时候没有连接过程,而是在虚拟机加载class文件的时候进行动态连接,也就是说class文件中不会保存各个方法,字段在内存中的布局信息。他们的

qq_30033509的博客 169
上一篇: 虚拟机3.6 内存分配与回收策略
下一篇: 第7章 虚拟机类加载机制7.1~7.3
xionglingjun
博客等级 码龄15年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值