`
wzju64676266
  • 浏览: 13888 次
  • 性别: 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字节码文件查看工具,查看class文件

    Java字节码文件查看工具,如JD-GUI,是开发者们深入理解Java应用程序内部机制的重要辅助工具。这类工具能够帮助我们查看并分析.class文件,这些文件是Java源代码经过编译后的二进制形式,包含了运行时所需的所有指令...

    class运行器v6(可以运行java字节码文件的工具 含代码)

    这些源代码可能包括VB代码以及与Java字节码解析和执行相关的逻辑。用户可以通过查看和分析这些源代码,了解如何读取和解释Java字节码,以及如何在非Java环境中执行它。 总的来说,这个工具为Java开发者提供了一种轻...

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

    【Java字节码结构解析】 Java程序在执行时,首先需要通过Java编译器将源代码(.java文件)编译成二进制的字节码文件(.class文件),这些字节码由Java虚拟机(JVM)解析并执行。深入理解字节码结构有助于我们了解...

    Java字节码(.class文件)格式详解((转载)

    `.docx`文档可能详细解析了Java字节码中的各个指令,包括它们的编码、含义、操作数和实际应用。通过阅读这份文档,你可以深入理解JVM如何执行字节码,以及如何通过反编译工具如jad、 jclasslib来分析`.class`文件。 ...

    java字节码分析工具

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

    Android-Java代码解析class文件

    1. **Java字节码结构**: - 类文件以魔数`CAFEBABE`开头,用于识别文件格式。 - 接着是版本信息,包括字节码版本号和常量池计数器。 - 常量池是类文件的核心部分,包含字符串、类名、方法名、字段名等各种常量。 ...

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

    C++库解析Java字节码的主要目的是为了能够读取、分析或者修改Class文件的结构。这在逆向工程、性能优化、安全分析以及跨语言集成等场景中非常有用。例如,开发者可能需要知道类的结构、方法签名、常量池信息,或者对...

    java字节码编辑器

    Java字节码编辑器是一种工具,它允许开发者直接编辑Java程序编译后的`.class`文件,而不是反编译后再重新编译。这种编辑器对于理解、调试和优化Java代码非常有用,尤其是对于那些无法访问源代码或者需要进行底层操作...

    java解析class文件

    在实际开发中,解析Class文件的工具和库有很多,如javap(Java字节码反汇编器)、ASM、BCEL、Javassist等。这些工具可以帮助开发者深入理解字节码,甚至自动生成或修改字节码,实现一些高级功能。 总而言之,Java...

    jd-gui.zip,jd-gui.exe反编译软件,用于将.class字节码文件->.java源代码

    Java开发工具JD-GUI是一款强大的反编译工具,它允许开发者查看并理解Java字节码(.class文件)背后的源代码。在Java编程中,源代码通常被编译成字节码,这是一种平台无关的中间表示,使得Java程序能够在任何支持Java...

    java反编译(将class文件反向编译成java源文件)

    1. **字节码解析**:反编译器首先读取.class文件,解析其中的字节码指令。 2. **控制流和数据流分析**:为了恢复源代码结构,反编译器需要理解程序的控制流和数据流,例如循环、条件语句和函数调用。 3. **符号表...

    java字节码文件反编译

    Java字节码文件反编译是一项重要的技术,它允许开发者查看和理解已编译的Java类文件(.class文件)内部的源代码结构。在Java中,源代码被编译成字节码,这是一种中间语言,由Java虚拟机(JVM)执行。然而,有时我们...

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

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

    修改class字节码需要的工具.zip

    1. **Luyten 0.5.4**: 这是一个跨平台的Java字节码查看器和编辑器,可以帮助开发者查看并修改`.class`文件。Luyten提供了图形化的界面,使得字节码的分析和修改变得更加直观。你可以通过加载`.class`文件,查看其...

    深入字节码 -- ASM 关键接口 ClassVisitor1

    【深入字节码 -- ASM 关键接口 ClassVisitor1】这篇技术文章主要探讨了ASM库在处理Java字节码时的核心接口ClassVisitor及其相关方法。ASM是一个强大的Java字节码操控和分析框架,常用于动态代理、字节码增强以及AOP...

    java class文件解析

    1. **Java字节码**:Java源代码编译后生成的是.class文件,其中存储的就是字节码,这是一种中间表示,与具体的硬件平台无关。每条字节码指令占用一个字节,由操作码和操作数组成,用于JVM执行。 2. **类文件结构**...

    python实现的简单的class解析以及简单执行class.zip

    Python是一种强大的、动态...它需要对Java字节码格式有深入的理解,同时也需要熟悉Python的字节操作和数据结构。通过实践这样的项目,开发者可以增强跨语言编程的能力,同时也能对Java和Python的底层机制有更深的认识。

    借助jclasslib与javassist修改java class字节码

    `jclasslib`则是一款图形化的Java字节码浏览器,主要用于解析和展示Java字节码文件(`.class`文件)的内容。它可以直观地显示字节码指令和常量池中的信息,并且提供了一定程度上的编辑功能,使得用户可以直接在图形...

Global site tag (gtag.js) - Google Analytics