美文网首页
JVM之类文件结构 一

JVM之类文件结构 一

作者: 空城EN | 来源:发表于2017-10-15 12:37 被阅读0次

  计算机只认识0和1,所以我们写的程序需要经编译器翻译成由0和1构成的二进制格式才能由计算机执行。

1.概述

  java文件会被编译为class文件,而class文件是一组以8位字节为基础单位的二进制流。
  在Class文件结构中,有两种数据类型:无符号数和表。无符号数主要有以下四种类型:

类型 字节数
u1 1
u2 2
u4 4
u8 8

  表就是由多个无符号数,以及其他的表组成的复杂的数据类型。

2.魔数

  每个Class文件的头4个字节称为魔数,用来确定这个文件是不是class文件。这四个字节的值为0xCAFEBABE(咖啡宝贝)。

魔数

3.主版本和次版本

  在魔数后面的两个字节是次版本号,为0x0000(为第五个和第六个字节),之后的为主版本号,为0x0032(为第七个和第八个字节)。

主版本和次版本号

注:高版本的JDK能向下兼容低版本的Class文件,但不能运行更高版本的Class文件

4.常量池

  紧接着主次版本号之后的是常量池。首先,是常量池容量计数值,是u2类型的数据。如图所示,为0x0024,及十进制的36,代表了有35个常量(1~35,0不算)。


常量池容量计数值

常量池的第一项常量,0x0A代表了这个常量的数据类型,即10对应了CONSTANT_Methodref_info。

常量池的项目类型

在下方的表中找出CONSTANT_Methodref_info对应的结构,发现,该常量由u1,u2,u2个字节组成。


14项常量项的结构

相关文章

  • JVM之类文件结构 一

    计算机只认识0和1,所以我们写的程序需要经编译器翻译成由0和1构成的二进制格式才能由计算机执行。 1.概述 jav...

  • JVM结构书目录

    JVM结构 JVM结构之运行时数据区 JVM结构之执行引擎 JVM结构之类加载子系统 JVM结构之本地方法接口(J...

  • 要点提炼| 理解JVM之类文件结构

    之前还在美团实习的时候,当时读《深入理解Java虚拟机》由于时间原因只总结了几个章节,现在把余下的几个章节补充上,...

  • 三、JVM之类文件

    实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java虚拟机不和包括Java在内的任何语言绑定,它只与“Cla...

  • JVM类加载学习二-类加载机制学习

    JVM类加载机制 @(Java)[JVM|类文件结构] [TOC] 基本介绍 JVM的类加载机制:JVM把描述类的...

  • Java 底层机制

    JVM体系结构 JVM是一种解释执行class文件的规范技术。 JVM体系结构 我翻译的中文图: 中文图 类装载器...

  • JVM学习笔记一

    JVM运行机制 JVM的启动过程 JVM的基本结构 JVM通过ClassLoader将class文件加载到内存中 ...

  • JVM了解

    java程序运行流程草图 说明:.java编译成面向jvm的class文件,供jvm解释执行 JVM结构 JVM的...

  • 热修复与插件化基础——Java与Android虚拟机

    一、Java虚拟机(JVM) 1、JVM整体结构 使用javac将java文件编译成class文件。 类加载器(C...

  • Android 中高级面试原理:热修复与插件化基础—Java与A

    一、Java虚拟机(JVM) 1、JVM整体结构 使用javac将java文件编译成class文件。 类加载器(C...

网友评论

      本文标题:JVM之类文件结构 一

      本文链接:https://www.haomeiwen.com/subject/dlnquxtx.html