public class Test {
public static void main(String[] args) {
Integer a = 10;
Integer b = 10;
System.out.println(a==b);
}
}
>javac Test.java
>javap -c Test
可以看到如下:
D:\tejiatrunkspace\DesignPatternDemo\src\com>javap -c Test
Compiled from "Test.java"
public class com.Test extends java.lang.Object{
public com.Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: bipush 10
2: invokestatic #2; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Int
eger;
5: astore_1
6: bipush 10
8: invokestatic #2; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Int
eger;
11: astore_2
12: getstatic #3; //Field java/lang/System.out:Ljava/io/PrintStream;
15: aload_1
16: aload_2
17: if_acmpne 24
20: iconst_1
21: goto 25
24: iconst_0
25: invokevirtual #4; //Method java/io/PrintStream.println:(Z)V
28: return
}
则知道
运行Integer a = 10; 之后,虚拟机做了:
Integer.valueOf()
分享到:
相关推荐
通过 `javap`,开发者能够深入了解 Java 编译器是如何处理源代码并生成字节码的,这对于优化程序性能和理解 Java 虚拟机 (JVM) 的工作原理至关重要。 #### 二、基本概念 在深入了解 `javap` 的使用之前,我们首先...
MSJVM,全称为Microsoft Java Virtual Machine,是由微软公司开发的一款Java虚拟机,用于在Windows操作系统上运行Java应用程序。它在20世纪90年代末期广泛使用,但随着Java技术的发展以及与Sun Microsystems(现...
此外,还学习了如何使用`javap`命令来查看字节码文件的具体内容,这对于理解Java程序在底层的运行机制非常重要。 以上就是关于Java运行原理及javap命令运行结果的相关知识点的详细介绍。希望对你有所帮助!
7. **字节码与跨平台**:解释为什么Java能够实现“一次编写,到处运行”,字节码在其中起到的关键角色。 通过学习这些知识点,开发者可以更好地理解Java程序的底层运作,从而提高代码质量和优化性能。同时,对于JVM...
例如,要查看一个名为`MyClass.class`的类,你可以运行`javap -c MyClass`,这会显示出类中的每个方法的字节码指令。 在`javap-Tool-master`这个压缩包中,很可能包含了一个关于如何使用`javap`工具的示例项目或...
使用`-c`选项,`Javap`会将字节码反编译为控制流图(CFG)的简单表示,这对于理解方法的执行流程非常有用。例如: ```bash javap -c MyClassName ``` `Javap`输出的内容通常包括以下几个部分: 1. **类的魔数**:...
本文将详细介绍如何在Eclipse中配置`javap`命令,以便在开发过程中方便地查看和理解Java字节码。 首先,`javap`命令的主要用途是对Java类文件进行反编译,它能够揭示Java虚拟机(JVM)如何处理我们的源代码。例如,当...
在实际开发中,开发者可以使用诸如`javap`这样的工具来查看编译后的字节码,从而分析和理解代码的底层执行逻辑。通过对JVM指令集的深入学习,开发者能更好地优化代码性能,避免内存泄漏,以及解决各种运行时问题。...
`javap`是Java虚拟机(JVM)的一部分,通过反编译Class文件,我们可以看到方法的原始字节码以及解释为的汇编指令。这个工具对于性能调优、理解和分析JVM的工作机制非常有用。 使用`javap`的基本语法是: ```bash ...
`javap`是Java开发工具包(JDK)的一部分,它用于反汇编Java字节码,帮助开发者查看和理解类文件的内部结构。这个项目可能有助于C++程序员更深入地了解Java虚拟机(JVM)的工作原理以及Java类文件的格式。 在描述中...
Java虚拟机(JVM)是Java程序的核心组成部分,它是一个软件实现的虚拟计算机,负责解析和执行由Java编译器生成的字节码。JVM的设计目标是提供跨平台的兼容性,使得“编写一次,到处运行”的理念得以实现。JVM通过...
详解 Java 中 JVM 虚拟机栈的作用 JVM 虚拟机栈是 Java 虚拟机(JVM)中的一部分,负责管理 Java 程序的执行。虚拟机栈由一个个栈帧组成,每个栈帧包含局部变量表、操作数栈、动态连接和方法出口四部分。 局部变量...
Java虚拟机栈是Java执行引擎的关键组成部分,它用于支持方法的执行。...开发者可以通过反编译工具,如`javap`,或者IDE插件(如jclasslib byte viewcoder)来查看和分析字节码文件,以深入了解栈帧的运作机制。
为什么要学JVM 1、一切JAVA代码都运行在JVM之上,只有深入理解虚拟机才能写出更强大的代码,解决更深层次的问题。 2、JVM是迈向高级工程师、架构师的必备技能,也是高薪、高职位的不二选择。 3、同时,JVM又是各大...
这个表达式在Java中的行为可以通过反编译成Java虚拟机(JVM)指令来理解。 首先,让我们回顾一下给定的代码片段: ```java public class Test { public static void main(String[] args) { int i = 0; i = i++; ...
5. **跨平台性**:Java的“一次编写,到处运行”(Write Once, Run Anywhere, WORA)理念,得益于Java虚拟机(JVM)。无论操作系统如何,只要安装了JVM,Java程序就能运行。 6. **Java语法**:包括基本数据类型、控制...
当你输入`java YourClassName`时,JVM(Java虚拟机)会被启动,并执行指定的类。任何Java应用程序的执行都离不开这个命令。 2. `javac.exe`: 它是Java的编译器,负责将源代码(`.java`文件)转换为字节码(`.class`...
JDK的全称(java Development Kit java开发工具包) JDK=JRE+java的开发工具(java,javac,javadoc,javap等) JDK给java开发人员使用包含JRE,所以不用单独安装 JRE JRE(java Runtime environment java运行环境)...
Java虚拟机通过`javap`工具可以查看Class文件的字节码和常量池内容。例如,对于给定的类`TestClass`,`javap -v`命令可以显示类的详细信息,包括常量池中的各个条目,如方法引用、字段引用等。 总之,Java类文件...
javap 的用法语法为:javap <选项> <类名>,其中选项包括: * -b:向后兼容 JDK 1.1 中的 javap * -c:反编译代码,打印出每个给定类中方法的 Java 虚拟机指令 * -classpath <pathlist>:指明到哪里查找用户的类...