学习JVM原理-9.ByteCode文件结构概述

摘自《深入理解Java虚拟机》周志明著

ByteCode类文件

  1. 二进制文件

  2. 以字节为单位存放有意义的数据,不以0/1为单位(怪不得叫字节码?)

  3. 某段数据的意义由它所处的位置来定,并不像XML或JSON一样有元数据,如<name>abc</name>,ByteCode文件里只有"abc"

数据结构的范式(把一个类文件看作一栋楼) 

    1. 砖头: 无符号数

    2. 房间: Table, 由无符号数搭建而成

    3. Table下可以有Table

    4. 整个类文件就是一个Table

主要数据成员:

  1.Magic Number,表明当前文件是Class文件(固定为0xCAFEBABE)

  2.minor_version 和 major_version,这决定了本class可以被什么版本的JRE运行

  3.constant pool

  4.access_flags, this_class,super_class, interfaces等

  5.fields, methods

  6.attributes,如字节码指令,exceptions,line number等

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.