`

javap的简单理解

 
阅读更多

 

参照http://blog.csdn.net/junsure2012/article/details/7099222

       java特种兵,深入理解jvm

       了解一些javap的知识。

 

这里列举下我这里接触过的常用指令吧

xconst_n    将常量压入栈顶  如iconst_1,将int常量1压入栈顶

bipush  n    将-128 到 127 压入栈顶      

sipush  n    将-32768 到32767压入栈顶

ldc        v    将int,float,String产量压入栈顶

xload_n      将第n+1个变量推送至栈顶,如fload_1 将第二float类型的变量推送至栈顶

xstore_n     将栈顶元素pop到n+1个变量中,如lstore_1则将栈顶元素保存至第二个变量中。

dup            复制栈顶数值,并且将其压入栈顶。

new            创建对象并且将对象压入栈顶。

iinc             将指定的int型变量+1

 

invokevirtual     调用实例方法

invokespecail    调用超类构造方法,实例初始化方法,实例私有方法。

invokestatic       调用静态方法

invokeinterface  调用接口方法

 

 

 

下面我就举几个简单的例子来详细说明一些我理解的javap的功能。

       1.关于变量i++

        

public class TestString {
	
	public static void main(String[] args) {
			int  a = 1  , b = 1 ,c = 1 , d =1;
			a++;
			++b;
			c=c++;
			d=++d;
			System.out.println(a+","+b+","+c+","+d);
	}
	
}

 

    

 

 

 

 

  2.关于String常量值

     

public class TestString {
	
	public static void main(String[] args) {
			String a="a" + "b" + "c";
	}
	
}

    



 

 

3.关于StringBuilder

   

public class TestString {
	
	public static void main(String[] args) {
			 int index=1;
       String str="my.string"+index;
	}
	
}

    

 

  • 大小: 125.4 KB
  • 大小: 195.9 KB
  • 大小: 101.5 KB
  • 大小: 122.7 KB
0
1
分享到:
评论

相关推荐

    HelloWorld的javap -verbose HelloWorld 字节码初探

    标题中的“HelloWorld的javap -verbose HelloWorld”指的是在Java编程环境中,通过`javap`这个命令行工具来反汇编一个简单的“HelloWorld”程序,以深入理解字节码的工作原理。`javap`是Java Platform Debugger ...

    javaP2P总结

    STUN(简单Traversal of UDP through NATs)、TURN(Traversal Using Relays around NATs)和ICE(Interactive Connectivity Establishment)等技术用于解决NAT穿透问题。 8. **安全性与隐私保护**:P2P网络的安全...

    使用类分解器Javap分析Java字节码

    使用`-c`选项,`Javap`会将字节码反编译为控制流图(CFG)的简单表示,这对于理解方法的执行流程非常有用。例如: ```bash javap -c MyClassName ``` `Javap`输出的内容通常包括以下几个部分: 1. **类的魔数**:...

    java反射机制简单理解

    Java 反射机制简单理解 Java 反射机制是一种强大的机制,它允许程序在运行时检查和修改自身的结构和行为。Java 反射机制简单理解,非常容易理解的 Java 反射机制。 Java 反射机制的主要应用场景有两种:一种是 ...

    javap命令的使用技巧

    Java 中 javap 命令的使用技巧 javap 命令是 JDK 自带的一个工具,它可以对代码反编译,也可以查看 Java ...javap 命令是 Java 开发者不可或缺的一个工具,它可以帮助开发者更好地理解 Java 语言和 JVM 的内部机理。

    javap写的一个动态日历

    描述简单地告诉我们这个项目是一个基于控制台的Java日历程序。这意味着它不是图形用户界面(GUI)应用程序,而是通过命令行界面运行,显示日期和时间信息。通常,这样的程序会利用Java的`System.out.println()`方法...

    2022年优秀-chapter多媒体与图形学程序设计JavaP.pptx

    【多媒体与图形学程序设计Java...理解这些基本概念和方法对于进行多媒体与图形学程序设计至关重要。在后续章节中,图像显示、图形处理和动画处理将会进一步深入讨论,这些知识点共同构建了Java中丰富的多媒体编程能力。

    一个简单的class文件解析

    这个简单的`class`文件解析的主题将引导我们深入理解Java虚拟机(JVM)的工作原理,以及如何通过工具来分析这些文件。我们将探讨类文件的结构、字节码和如何使用工具如`javap`来解析它们。 首先,`class`文件的结构...

    用Java Socket实现一个简单的基于P2P范型的即时聊天系统。

    在本文中,我们将深入探讨如何...通过分析这些代码,我们可以进一步理解P2P聊天系统的具体实现细节。在实际开发中,可以在此基础上扩展功能,例如添加文件传输、语音聊天、用户认证等,以构建更完善的P2P即时通讯平台。

    java聊天程序 p2p聊天程序

    5. **网络协议**:P2P聊天程序可能需要自定义简单的协议来规定消息格式,包括头部信息(如目标节点的IP地址和端口号)和数据体(如聊天内容)。 6. **文件I/O**:在某些情况下,可能需要将聊天记录保存到本地文件,...

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

    为了便于理解,可以使用反编译工具(如`javap`命令)将字节码反编译回Java源码。反编译后的代码会包含编译器自动添加的元素,如构造函数和`this`关键字。 3. **字节码结构** Java字节码文件的结构遵循严格的格式,...

    [详细完整版]爬虫基本知识.pdf

    1. 简洁的接口:Python的urllib2包提供了简单易用的网页抓取API,比Java、C#、C++等静态语言更为便捷,同时也比Perl、Shell等动态脚本语言更全面。 2. 模拟浏览器行为:Python有许多第三方库如Requests和mechanize...

    class文件结构(简单class文件)

    class文件是Java编译后的字节码文件,是Java虚拟机(JVM)能够理解和执行的指令集。class文件的结构设计使得它可以跨平台运行在任何安装有Java虚拟机的机器上。class文件包含了Java源代码编译成的字节码指令、符号...

    面向对象程序设计总复习.pptx

    1. 简单:JAVA比C++简单,弃用了一些容易混淆的概念或以一种更清楚更容易理解的方式实现。 2. 面向对象:JAVA是面向对象的编程语言,强调模块化、抽象化和重用性。 3. 平台无关:JAVA的字节码文件可以在任何安装了...

    字节码解析01.rar

    这个文件可能包含了一个简单的Java程序,以及对应的字节码解析程序,帮助学习者通过实践来理解字节码的结构。 学习Java字节码解析,通常需要理解以下核心概念: 1. **常量池**:存储各种常量,如字符串、类名、...

    《Java程序设计》教学大纲.doc

    - 通过一个简单的Java应用程序实例,实践编程过程。 2. **基本类型、数组和枚举类型**: - 理解标识符和关键字的规则,它们是编写代码的基础。 - 掌握Java中的基本数据类型,如整型、浮点型、字符型和布尔型。 ...

    class文件解析案例

    例如,一个简单的`HelloWorld`类,通过反编译工具(如javap)查看其字节码,可以观察到`main`方法的执行流程。 4. **样例数据分析**: 提供的jvm.docx文件可能包含更详细的案例分析,比如如何解析特定的class文件...

    jd-gui.rar

    在理解Java字节码和反编译技术的同时,开发者还应了解JDK自带的`javap`命令行工具,它提供了更基础的字节码查看功能。尽管不如JD-GUI直观,但`javap`在某些场景下也能提供必要的信息,例如类的公共成员、常量池和...

    JVM 字节码从入门到精通

    因此,本文从最简单的Java程序——打印"Hello, World"开始,逐步介绍如何将Java源文件编译成字节码文件,以及字节码文件中所包含的一些基本信息。 首先,我们需要编写一个简单的Java程序(Hello.java),程序中包含...

    21天学通JAVA_入门精品

    一个完整的Java小程序能够帮助初学者理解如何进行简单的开发流程。 在了解了这些知识点后,Java初学者应该能够搭建好开发环境,编写简单的Java程序,并理解Java程序的编译和运行过程。这些基础知识点是后续学习Java...

Global site tag (gtag.js) - Google Analytics