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

这篇具有很好参考价值的文章主要介绍了JVM——类加载与字节码技术—类文件结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

1.类文件结构

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

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

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

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

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

第一列是八进制的标号。

1.1魔数

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

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

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

1.2 版本

JVM——类加载与字节码技术—类文件结构,JVM,jvm 小版本是前两个,主版本是后两个,16进制的34对应10进制的52,对应jdk8。

1.3 常量池

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

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

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

()V表示空参的void.

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

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

开头加上L是引用类型

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

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

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

 

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

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

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

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

1.4访问标识与继承信息

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

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

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

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

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

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

1.5 Field 信息

成员变量信息

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

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

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

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

 

1.6Method 信息

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

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

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

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

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

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

1.7 附加属性

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

蚌埠住了,直接跳了 

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

了解即可文章来源地址https://www.toymoban.com/news/detail-667452.html

了解即可

了解即可

到了这里,关于JVM——类加载与字节码技术—类文件结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JVM之类加载与字节码

    根据 Java 虚拟机规范,Class 文件通过 ClassFile 定义。ClassFile 的结构如下: 通过分析 ClassFile 的内容,我们便可以知道 class 文件的组成。 下面这张图是通过 IDEA 插件 jclasslib 查看的,你可以更直观看到 Class 文件结构。使用 jclasslib 不光可以直观地查看某个类对应的字节码文件

    2024年02月14日
    浏览(32)
  • JVM之类加载与字节码(二)

    类从被加载到虚拟机内存中开始到卸载出内存为止,它的整个生命周期可以简单概括为 7 个阶段::加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)。其中,验证、准备和解析这三个阶段可以

    2024年02月13日
    浏览(79)
  • JVM之类加载与字节码(一)

    根据 Java 虚拟机规范,Class 文件通过 ClassFile 定义。ClassFile 的结构如下: 通过分析 ClassFile 的内容,我们便可以知道 class 文件的组成。 下面这张图是通过 IDEA 插件 jclasslib 查看的,你可以更直观看到 Class 文件结构。使用 jclasslib 不光可以直观地查看某个类对应的字节码文件

    2024年02月14日
    浏览(34)
  • p7付费课程笔记:jvm基础知识、字节码、类加载器

    机器语言-编程语言-高级语言(java,c++,Go,Rust等) 面向过程–面向对象-面向函数 java是一种面向对象、静态类型、编译执行,有VM(虚拟机)/GC和运行时、跨平台的高级语言。重点:VM(虚拟机)/GC(Garbage Collector)和运行时、跨平台。 跨平台步骤:字节码文件被虚拟机加载(

    2024年02月10日
    浏览(29)
  • 【Java高级应用:深入探索Java编程的强大功能,JVM 类加载机制, JVM 内存模型,垃圾回收机制,JVM 字节码执行,异常处理机制】

    本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题 中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:

    2024年01月16日
    浏览(73)
  • JVM(字节码文件详解)

    类加载器 运行时数据区域 执行引擎(主要理解垃圾回收器,及时编译器) 本地方法 在讲解字节码文件组成前,可以安装使用“ jclasslib ”工具或idea中“ jclasslib ”插件进行字节码文件查看 jclasslib的Github地址: https://github.com/ingokegel/jclasslib

    2024年01月23日
    浏览(48)
  • 【JVM】字节码文件的组成

    1. 魔数与Class文件版本  魔数是一个用于校验字节码文件是否有效的标识,位于文件开头的前四个字节,魔数之后是次版本号和主版本号,共同构成了字节码文件的版本号。 2.常量池 常量池是字节码文件中的一个结构,包含了该类的所有常量,如数字,字符串,符号常量等。

    2024年02月02日
    浏览(30)
  • JVM系列-2.字节码文件详解

    👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家 📕系列专栏:Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术、JVM原理 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦 🍂博主正在努力完成2023计划中:源码

    2024年01月22日
    浏览(29)
  • 【JVM】字节码文件的组成部分

    🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 操作数栈是临时存放数据的地方 局部变量表是存放方法中的局部变量的位置 观察如下代码的字节码文件 具体的java源代码: 要想看到java的字

    2024年02月08日
    浏览(29)
  • 一、认识 JVM 规范(JVM 概述、字节码指令集、Class文件解析、ASM)

    JVM : Java Virtual Machine ,也就是 Java 虚拟机 所谓虚拟机是指:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统。 即:虚拟机是一个计算机系统。这种计算机系统运行在完全隔离的环境中,且它的硬件系统功能是通过软件模拟出来的。 JVM 通

    2024年01月23日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包