参照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; } }
相关推荐
标题中的“HelloWorld的javap -verbose HelloWorld”指的是在Java编程环境中,通过`javap`这个命令行工具来反汇编一个简单的“HelloWorld”程序,以深入理解字节码的工作原理。`javap`是Java Platform Debugger ...
STUN(简单Traversal of UDP through NATs)、TURN(Traversal Using Relays around NATs)和ICE(Interactive Connectivity Establishment)等技术用于解决NAT穿透问题。 8. **安全性与隐私保护**:P2P网络的安全...
使用`-c`选项,`Javap`会将字节码反编译为控制流图(CFG)的简单表示,这对于理解方法的执行流程非常有用。例如: ```bash javap -c MyClassName ``` `Javap`输出的内容通常包括以下几个部分: 1. **类的魔数**:...
Java 反射机制简单理解 Java 反射机制是一种强大的机制,它允许程序在运行时检查和修改自身的结构和行为。Java 反射机制简单理解,非常容易理解的 Java 反射机制。 Java 反射机制的主要应用场景有两种:一种是 ...
Java 中 javap 命令的使用技巧 javap 命令是 JDK 自带的一个工具,它可以对代码反编译,也可以查看 Java ...javap 命令是 Java 开发者不可或缺的一个工具,它可以帮助开发者更好地理解 Java 语言和 JVM 的内部机理。
描述简单地告诉我们这个项目是一个基于控制台的Java日历程序。这意味着它不是图形用户界面(GUI)应用程序,而是通过命令行界面运行,显示日期和时间信息。通常,这样的程序会利用Java的`System.out.println()`方法...
【多媒体与图形学程序设计Java...理解这些基本概念和方法对于进行多媒体与图形学程序设计至关重要。在后续章节中,图像显示、图形处理和动画处理将会进一步深入讨论,这些知识点共同构建了Java中丰富的多媒体编程能力。
这个简单的`class`文件解析的主题将引导我们深入理解Java虚拟机(JVM)的工作原理,以及如何通过工具来分析这些文件。我们将探讨类文件的结构、字节码和如何使用工具如`javap`来解析它们。 首先,`class`文件的结构...
在本文中,我们将深入探讨如何...通过分析这些代码,我们可以进一步理解P2P聊天系统的具体实现细节。在实际开发中,可以在此基础上扩展功能,例如添加文件传输、语音聊天、用户认证等,以构建更完善的P2P即时通讯平台。
5. **网络协议**:P2P聊天程序可能需要自定义简单的协议来规定消息格式,包括头部信息(如目标节点的IP地址和端口号)和数据体(如聊天内容)。 6. **文件I/O**:在某些情况下,可能需要将聊天记录保存到本地文件,...
为了便于理解,可以使用反编译工具(如`javap`命令)将字节码反编译回Java源码。反编译后的代码会包含编译器自动添加的元素,如构造函数和`this`关键字。 3. **字节码结构** Java字节码文件的结构遵循严格的格式,...
1. 简洁的接口:Python的urllib2包提供了简单易用的网页抓取API,比Java、C#、C++等静态语言更为便捷,同时也比Perl、Shell等动态脚本语言更全面。 2. 模拟浏览器行为:Python有许多第三方库如Requests和mechanize...
class文件是Java编译后的字节码文件,是Java虚拟机(JVM)能够理解和执行的指令集。class文件的结构设计使得它可以跨平台运行在任何安装有Java虚拟机的机器上。class文件包含了Java源代码编译成的字节码指令、符号...
1. 简单:JAVA比C++简单,弃用了一些容易混淆的概念或以一种更清楚更容易理解的方式实现。 2. 面向对象:JAVA是面向对象的编程语言,强调模块化、抽象化和重用性。 3. 平台无关:JAVA的字节码文件可以在任何安装了...
这个文件可能包含了一个简单的Java程序,以及对应的字节码解析程序,帮助学习者通过实践来理解字节码的结构。 学习Java字节码解析,通常需要理解以下核心概念: 1. **常量池**:存储各种常量,如字符串、类名、...
- 通过一个简单的Java应用程序实例,实践编程过程。 2. **基本类型、数组和枚举类型**: - 理解标识符和关键字的规则,它们是编写代码的基础。 - 掌握Java中的基本数据类型,如整型、浮点型、字符型和布尔型。 ...
例如,一个简单的`HelloWorld`类,通过反编译工具(如javap)查看其字节码,可以观察到`main`方法的执行流程。 4. **样例数据分析**: 提供的jvm.docx文件可能包含更详细的案例分析,比如如何解析特定的class文件...
在理解Java字节码和反编译技术的同时,开发者还应了解JDK自带的`javap`命令行工具,它提供了更基础的字节码查看功能。尽管不如JD-GUI直观,但`javap`在某些场景下也能提供必要的信息,例如类的公共成员、常量池和...
因此,本文从最简单的Java程序——打印"Hello, World"开始,逐步介绍如何将Java源文件编译成字节码文件,以及字节码文件中所包含的一些基本信息。 首先,我们需要编写一个简单的Java程序(Hello.java),程序中包含...
一个完整的Java小程序能够帮助初学者理解如何进行简单的开发流程。 在了解了这些知识点后,Java初学者应该能够搭建好开发环境,编写简单的Java程序,并理解Java程序的编译和运行过程。这些基础知识点是后续学习Java...