`
wzju64676266
  • 浏览: 13630 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java字节码解析-class文件结构

阅读更多

相信学java的人都对new  Object();创建对象都很熟悉,但想要真正了解原理就没那么容易!以以下例子为例,解释class代码及执行过程,如有错误,还望各位高手多多指教!

帧的创建如下所示:


 

 

 

class文件格式如下:

 


 

程序计数器(pc):每一个Java线程都有一个程序计数器来用于保存程序执行到当前方法的哪一个指令,对于非Native方法,这个区域记录的是正在执行的VM原语的地址,如果正在执行的是Natvie方法,这个区域则为空(undefined)。

程序计数器 例子和图就拿现成的了,直接引用同事的

 

 

 

 

 

 

接下来来看一个例子,源代码如下:

 

如上代码很简单,main方法加上try catch只是为了  让大家看一下java文件生产字节码是怎么样的

 

执行javac  Dog.java文件,生成class文件。然后使用javap -verbose Dog反编译出class代码。

 

生成如下代码:

 

  • 大小: 17.1 KB
  • 大小: 116.8 KB
  • 大小: 48.7 KB
分享到:
评论
6 楼 q631951221 2011-12-12  
写的不错,有些我还看不懂,慢慢看
5 楼 dyllove98 2011-01-17  
+ - * / %
还有 long int char short 等等运算符和类型的取位

当然只是建议..都很忙
4 楼 wzju64676266 2011-01-17  
dyllove98 写道
wzju64676266 写道
dyllove98 写道
这个是你自己总结的吗?
  受益匪浅..

是啊!有问题还请指出

可以考虑再更新下 把一些算法指令也加上去..

指的是什么?
3 楼 dyllove98 2011-01-17  
wzju64676266 写道
dyllove98 写道
这个是你自己总结的吗?
  受益匪浅..

是啊!有问题还请指出

可以考虑再更新下 把一些算法指令也加上去..
2 楼 wzju64676266 2011-01-15  
dyllove98 写道
这个是你自己总结的吗?
  受益匪浅..

是啊!有问题还请指出
1 楼 dyllove98 2011-01-13  
这个是你自己总结的吗?
  受益匪浅..

相关推荐

    java字节码分析工具

    Java字节码分析工具,系统分析了java字节码文件,即java class类文件,对该文件中的各种成分以树的形式描述出来,只能针对未加密的class文件,一般由标准java编译器编译生成的class文件都未加密,该系统在vs2003下面...

    从一个class文件深入理解Java字节码结构

    我们都知道,Java程序最终是转换成class文件执行在虚拟机上的,那么class文件是个怎样的结构,虚拟机又是如何处理去执行class文件里面的内容呢,这篇文章带你深入理解Java字节码中的结构。 1.Demo源码 首先,编写一...

    class文件结构解析字节码后文件

    class文件结构解析字节码后文件

    JavaClassViewer-2.0.4_理解class文件结构

    JavaClassViewer-2.0.4, 用于理解Class文件结构。 解析出class结构,以及十六进制的表示,特别方便。 原下载地址: http://www.softpedia.com/get/Programming/File-Editors/Java-Class-Viewer.shtml。另外也可以参考...

    Java字节码操纵框架 asm-3.1组件包大集合

    Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至...

    cpp-C语言实现的一个解析JAVAclass字节码的库

    a library written by c language,for parsing the standard java class byte codes

    java解析txt

    * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 * 3:读取到输入流后,需要读取生成字节流 * 4:一行一行的输出。readline()。 * 备注:需要考虑的是异常情况 * @param filePath */...

    java源码包---java 源码 大量 实例

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    class文件解析

    一个解析java class文件的代码

    asm4-guide.pdf

    Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至...

    JavaBytecodeAnalyzer:解析学习 Java 字节码

    JavaBytecodeAnalyzer 解析 Java 字节码,学习字节码指令集 解析 class 文件为字节码,以熟悉 class 文件结构 学习 java bytecode 指令集

    pyjvm:在Nintendo Switch上运行Java字节码(.class文件)!

    如果您只想运行已编译的字节码,则只需一个Python解释器。 运行测试 该项目带有许多单元测试。 如果运行shell脚本test.sh ,它将在示例目录中编译Java文件并运行单元测试。 您将能够看到通过了多少测试以及失败了...

    Java虚拟机字节码.zip

    详细介绍ASM框架的API、Class文件结构解析、HotSpot虚拟机类加载源码分析、动态代理与字节码插桩的实现。

    字节码解析01.rar

    使用Java编程语言,对.class文件进行解析,类似于javap -v filename指令的效果,但是没有对attibutes属性进行解析,需要学习的可以下载,程序运行的效果在本人的博客的附录中

    asm-9.0.jar

    ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件...

    asm操作指南(中文)

    ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class...

    Java反编译

    Java反编译工具,解析class字节码文件。 解析class字节码文件

    ASM4中文使用指南.zip

    Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至...

    JAVA程序设计判断题题库81道

    4. Java字节码程序是可以在Java虚拟机上执行的。( ) 答案:√ [考点范围] JAVA简介 5. Java程序对计算机硬件平台的依赖性很低。( ) 答案:√ [考点范围] JAVA简介 6. Java可以用来进行多媒体及网络编程。( ) ...

    深入解析基于SSM框架的RBAC权限控制模型实战源码

    - 字节码文件:17个CLASS文件,为Java源码编译后的产物。 - 动态图片:14个GIF文件,为界面增添动态效果。 项目简述: 本项目以SSM框架为基础,结合RBAC权限控制模型,对用户角色和权限进行精细化管理。它不仅体现...

Global site tag (gtag.js) - Google Analytics