美文网首页
【笔记】深入理解java虚拟机--class 文件的正确打开方式

【笔记】深入理解java虚拟机--class 文件的正确打开方式

作者: 张航_8ee7 | 来源:发表于2018-01-02 16:46 被阅读0次

首先,我们 简单的写个类

package com.dongdao;

public class PromjectStart {

private int m;

public int initm() {

return m +1;

}

}

执行    javac PromjectStart.java,生成  class 文件。

用 WinHex 打开该 class 文件,得到 如下。

我们需要用到的对照表。

 表1 ,常量池类型

表2 常量结构

 3, 执行 javap -verbose PromjectStart.class生成的类文件结构。

分析,class结构如下。

【1】0-7 依次是 魔数 次版本 主版本。 8-9 是 常量池的大小,即 13 的 10进制 是19 ,一共有18的常量。对照 3 ,发现是 18个。

【2】继续,每一个常量都是以一个  u1 开始的,所以读 一位, 0A,然后查找表1,是Methodref,查表2,得到数据结构是,u1,u2,u2。所以,该位对应的索引是,ooo4 ,第四位索引,和 000f 第 15位索引。对着 3,发现一致。

【3】继续,读一个 u1,是 09,查表1 得到 Filerldref,查表2,数据结构是,u1,u2,u2。对应的索引是 0003 , 第3位索引, 和 第16 位索引。 对照 3 ,发现一致。

【4】 继续,读 一个  u1 是 07,查 表1 是classinfo,查 表2 是 u1,u2。对应的是18.

以此类比。。。

相关文章

  • Java虚拟机类加载机制(七)

    读书笔记 深入理解Java虚拟机:JVM高级特性与最佳实现(第二版) 概述 深入了解了Class文件存储格式的具...

  • 深入理解Class文件结构

    深入理解Class文件结构 概述 我们都知道编写的Java的源码会先编译成Class文件,java虚拟机再将Cla...

  • Java字节码文件结构

    《深入理解Java虚拟机》读书笔记,java字节码文件的这块定义的数据结构比较多,书讲解的很详细。 一.class...

  • 6.3 Class类文件结构

    参考 《深入理解Java虚拟机 JVM高级特性与最佳实践》 6.3节 1.class类文件结构 任何class文件...

  • Java虚拟机——类加载机制和类加载器

    前言: 本文主要参考《深入理解Java虚拟机》,讲解了Java虚拟机加载.class文件主要流程——类加载过程、几...

  • Java的class文件结构

    在《深入理解java虚拟机》一书第6章讲到了java的类文件,并且详情介绍了java的class文件的内容。但是,...

  • Java虚拟机方法调用

    本文主要参考自 深入理解Java虚拟机 概述 Java能够做到“一处编译,处处运行”,这与.class文件的...

  • 《深入理解 Java 虚拟机》学习 -- 类加载机制

    《深入理解 Java 虚拟机》学习 -- 类加载机制 1. 概述 虚拟机把描述类的数据从 Class 文件加载到内...

  • Java虚拟机

    《深入理解 Java 虚拟机》- 笔记一

  • 简析JVM

    本文为阅读《深入理解Java虚拟机》一书的阅读总结,仅围绕JVM如何运行字节码文件(*.class)探究Java虚...

网友评论

      本文标题:【笔记】深入理解java虚拟机--class 文件的正确打开方式

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