0x59 dup 复制 栈顶数并将复制压入栈顶。 0x5a dup_x1 复制 栈顶数并将两个复制压入栈顶。 0x5b dup_x2 复制 栈顶数并将三个 ( 或两个 ) 复制 压入栈顶。 0x5c dup2 复制 栈顶一个 (long 或 double 类型的 ) 或两个 ( 其它 ) 数 并将复制压入栈顶。 0x5d dup
0x59 dup复制栈顶数值并将复制值压入栈顶。
0x5a dup_x1复制栈顶数值并将两个复制值压入栈顶。
0x5b dup_x2复制栈顶数值并将三个(或两个)复制值压入栈顶。
0x5c dup2复制栈顶一个(long或 double 类型的)或两个(其它)数值并将复制值压入栈顶。
0x5d dup2_x1 dup_x1 指令的双倍版
0x5e dup2_x2 dup_x2 指令的双倍版
0x5f swap将栈最顶端的两个数值互换(数值不能是 long或 double 类型的)。
0x60 iadd将栈顶两 int 型数值相加并将结果压入栈顶。
0x61 ladd将栈顶两 long型数值相加并将结果压入栈顶。
0x62 fadd将栈顶两 float型数值相加并将结果压入栈顶。
0x63 dadd将栈顶两 double型数值相加并将结果压入栈顶。
0x64 isub将栈顶两 int 型数值相减并将结果压入栈顶。
0x65 |
lsub |
将栈顶两 long 型数值相减并将结果压入栈顶。 |
0x66 |
fsub |
将栈顶两 float 型数值相减并将结果压入栈顶。 |
0x67 |
dsub |
将栈顶两 double 型数值相减并将结果压入栈顶。 |
0x68 |
imul |
将栈顶两 int 型数值相乘并将结果压入栈顶。。 |
0x69 |
lmul |
将栈顶两 long 型数值相乘并将结果压入栈顶。 |
0x6a |
fmul |
将栈顶两 float 型数值相乘并将结果压入栈顶。 |
0x6b |
dmul |
将栈顶两 double 型数值相乘并将结果压入栈顶。 |
0x6c |
idiv |
将栈顶两 int 型数值相除并将结果压入栈顶。 |
0x6d |
ldiv |
将栈顶两 long 型数值相除并将结果压入栈顶。 |
0x6e |
fdiv |
将栈顶两 float 型数值相除并将结果压入栈顶。 |
0x6f |
ddiv |
将栈顶两 double 型数值相除并将结果压入栈顶。 |
0x70 |
irem |
将栈顶两 int 型数值作取模运算并将结果压入栈顶。 |
0x71 |
lrem |
将栈顶两 long 型数值作取模运算并将结果压入栈顶。 |
0x72 |
frem |
将栈顶两 float 型数值作取模运算并将结果压入栈顶。 |
0x73 |
drem |
将栈顶两 double 型数值作取模运算并将结果压入栈顶。 |
0x74 |
ineg |
将栈顶 int 型数值取负并将结果压入栈顶。 |
0x75 |
lneg |
将栈顶 long 型数值取负并将结果压入栈顶。 |
0x76 |
fneg |
将栈顶 float 型数值取负并将结果压入栈顶。 |
0x77 |
dneg |
将栈顶 double 型数值取负并将结果压入栈顶。 |
0x78 |
ishl |
将 int 型数值左移位指定位数并将结果压入栈顶。 |
0x79 |
lshl |
将 long 型数值左移位指定位数并将结果压入栈顶。 |
0x7a |
ishr |
将 int 型数值右(有符号)移位指定位数并将结果压入栈顶。 |
0x7b |
lshr |
将 long 型数值右(有符号)移位指定位数并将结果压入栈顶。 |
0x7c |
iushr |
将 int 型数值右(无符号)移位指定位数并将结果压入栈顶。 |
0x7d |
lushr |
将 long 型数值右(无符号)移位指定位数并将结果压入栈顶。 |
0x7e |
iand |
将栈顶两 int 型数值作“按位与”并将结果压入栈顶。 |
0x7f |
land |
将栈顶两 long 型数值作“按位与”并将结果压入栈顶。 |
0x80 |
ior |
将栈顶两 int 型数值作“按位或”并将结果压入栈顶。 |
0x81 |
lor |
将栈顶两 long 型数值作“按位或”并将结果压入栈顶。 |
0x82 |
ixor |
将栈顶两 int 型数值作“按位异或”并将结果压入栈顶。 |
0x83 |
lxor |
将栈顶两 long 型数值作“按位异或”并将结果压入栈顶。 |
0x84 |
iinc |
将指定 int 型变量增加指定值。 |
0x85 |
i2l |
将栈顶 int 型数值强制转换成 long型数值并将结果压入栈顶。 |
0x86 |
i2f |
将栈顶 int 型数值强制转换成 float型数值并将结果压入栈顶。 |
0x87 |
i2d |
将栈顶 int 型数值强制转换成 double型数值并将结果压入栈顶。 |
0x88 |
l2i |
将栈顶 long 型数值强制转换成 int型数值并将结果压入栈顶。 |
0x89 |
l2f |
将栈顶 long 型数值强制转换成 float型数值并将结果压入栈顶。 |
0x8a |
l2d |
将栈顶 long 型数值强制转换成 double型数值并将结果压入栈顶。 |
0x8b |
f2i |
将栈顶 float 型数值强制转换成 int型数值并将结果压入栈顶。 |
0x8c |
f2l |
将栈顶 float 型数值强制转换成 long型数值并将结果压入栈顶。 |
0x8d |
f2d |
将栈顶 float 型数值强制转换成 double型数值并将结果压入栈顶。 |
0x8e |
d2i |
将栈顶 double 型数值强制转换成 int型数值并将结果压入栈顶。 |
0x8f |
d2l |
将栈顶 double 型数值强制转换成 long型数值并将结果压入栈顶。 |
0x90 |
d2f |
将栈顶 double 型数值强制转换成 float型数值并将结果压入栈顶。 |
0x91 |
i2b |
将栈顶 int 型数值强制转换成 byte型数值并将结果压入栈顶。 |
0x92 |
i2c |
将栈顶 int 型数值强制转换成 char型数值并将结果压入栈顶。 |
0x93 |
i2s |
将栈顶 int 型数值强制转换成 short型数值并将结果压入栈顶。 |
0x94 |
lcmp |
比较栈顶两 long 型数值大小,并将结果(1,0,-1)压入栈顶 |
0x95 |
fcmpl |
比较栈顶两 float 型数值大小,并将结果(1,0,-1)压入栈顶;当其中一个数值为“NaN”时,将-1压入栈顶。 |
0x96 |
fcmpg |
比较栈顶两 float 型数值大小,并将结果(1,0,-1)压入栈顶;当其中一个数值为“NaN”时,将 1压入栈顶。 |
0x97 |
dcmpl |
比较栈顶两 double 型数值大小,并将结果(1,0,-1)压入栈顶;当其中一个数值为“NaN”时,将-1压入栈顶。 |
0x98 |
dcmpg |
比较栈顶两 double 型数值大小,并将结果(1,0,-1)压入栈顶;当其中一个数值为“NaN”时,将 1压入栈顶。 |
0x99 |
ifeq |
当栈顶 int 型数值等于 0时跳转。 |
0x9a |
ifne |
当栈顶 int 型数值不等于 0时跳转。 |
0x9b |
iflt |
当栈顶 int 型数值小于 0时跳转。 |
0x9c |
ifge |
当栈顶 int 型数值大于等于 0时跳转。 |
0x9d |
ifgt |
当栈顶 int 型数值大于 0时跳转。 |
0x9e |
ifle |
当栈顶 int 型数值小于等于 0时跳转。 |
0x9f |
if_icmpeq |
比较栈顶两 int 型数值大小,当结果等于 0时跳转。 |
0xa0 |
if_icmpne |
比较栈顶两 int 型数值大小,当结果不等于 0时跳转。 |
0xa1 |
if_icmplt |
比较栈顶两 int 型数值大小,当结果小于 0时跳转。 |
0xa2 |
if_icmpge |
比较栈顶两 int 型数值大小,当结果大于等于 0时跳转。 |
0xa3 |
if_icmpgt |
比较栈顶两 int 型数值大小,当结果大于 0时跳转 |
0xa4 |
if_icmple |
比较栈顶两 int 型数值大小,当结果小于等于 0时跳转。 |
0xa5 |
if_acmpeq |
比较栈顶两引用型数值,当结果相等时跳转。 |
0xa6 |
if_acmpne |
比较栈顶两引用型数值,当结果不相等时跳转。 |
0xa7 |
goto |
无条件跳转。 |
0xa8 |
jsr |
跳转至指定 16 位 offset 位置,并将 jsr 下一条指令地址压入栈顶。 |
0xa9 |
ret |
返回至局部变量指定的 index 的指令位置(一般与 jsr,jsr_w联合使用)。 |
0xaa |
tableswitch |
用于 switch 条件跳转,case值连续(可变长度指令)。 |
0xab |
lookupswitch |
用于 switch 条件跳转,case值不连续(可变长度指令)。 |
0xac |
ireturn |
从当前方法返回 int。 |
0xad |
lreturn |
从当前方法返回 long。 |
0xae |
freturn |
从当前方法返回 float。 |
0xaf |
dreturn |
从当前方法返回 double。 |
0xb0 |
areturn |
从当前方法返回对象引用。 |
0xb1 |
return |
从当前方法返回 void。 |
0xb2 |
getstatic |
获取指定类的静态域,并将其值压入栈顶。 |
0xb3 |
putstatic |
为指定的类的静态域赋值。 |
0xb4 |
getfield |
获取指定类的实例域,并将其值压入栈顶。 |
0xb5 |
putfield |
为指定的类的实例域赋值。 |
0xb6 |
invokevirtual |
调用实例方法。 |
0xb7 |
invokespecial |
调用超类构造方法,实例初始化方法,私有方法。 |
0xb8 |
invokestatic |
调用静态方法。 |
0xb9 |
invokeinterfac e |
调用接口方法。 |
0xba |
invokedynamic |
调用动态链接方法1。 |
0xbb |
new |
创建一个对象,并将其引用值压入栈顶。 |
0xbc |
newarray |
创建一个指定原始类型(如 int、float、char......)的数组,并将其引用值压入栈顶。 |
0xbd |
anewarray |
创建一个引用型(如类,接口,数组)的数组,并将其引用值压 入栈顶。 |
0xbe |
arraylength |
获得数组的长度值并压入栈顶。 |
0xbf |
athrow |
将栈顶的异常抛出。 |
0xc0 |
checkcast |
检验类型转换,检验通过将抛出 ClassCastException。 |
0xc1 instanceof 检验对象是否是指定的类的实例,如果是将 1 压入栈顶,否则将0 压入栈顶。
0xc2 monitorenter获得对象的 monitor,用于同步方法或同步块。
0xc3 monitorexit释放对象的 monitor,用于同步方法或同步块。
0xc4 wide扩展访问局部变量表的索引宽度。
0xc5 multianewarray创建指定类型和指定维度的多维数组(执行该指令时,操作栈中必须包各维度的长度值),并将其引用值压入栈顶。
0xc6 ifnull为 null 时跳转。
0xc7 ifnonnull不为 null 时跳转。
0xc8 goto_w无条件跳转(宽索引)。
0xc9 jsr_w跳转至指定 32 位地址偏移量位置,并将 jsr_w 下一条指令地址压入栈顶。
保留指令
0xca breakpoint调试时的断点标志。
0xfe impdep1用于在特定硬件中使用的语言后门。
0xff impdep1用于在特定硬件中使用的语言后门。

该项目为了方便开发者更快监控多个远程主机jvm,如果你的项目是Spring boot那么很方便集成,jar包引入即可,不是Spring boot也不用气馁,你可以快速自行初始化一个Spirng boot程序引入jar包即可

JVM虚拟机的作用及原理解析简介:JVM(JavaVirtualMachine)虚拟机是Java编程语言的核心组成部分之一,它是Java的最大卖点之一。JVM的作用是将Java源代码编译成字节码,并负责执行这些字节码。本文将介绍JVM的作用及其工作原理,并提供一些代码示例以帮助读者更好地理解。作用:JVM的主要作用是解决了不同平台上Java程序的可移

掌握JVM内存使用情况的要点与注意事项JVM(JavaVirtualMachine)是Java应用程序运行的环境,其中最为重要的就是JVM的内存管理。合理地管理JVM内存不仅可以提高应用程序的性能,还可以避免内存泄漏和内存溢出等问题。本文将介绍JVM内存使用的要点和注意事项,并提供一些具体的代码示例。JVM内存分区JVM内存主要分为以下几个区域:堆(He

在编写java程序来检查JVM是32位还是64位之前,我们先讨论一下JVM。JVM是java虚拟机,负责执行字节码。它是Java运行时环境(JRE)的一部分。我们都知道java是平台无关的,但是JVM是平台相关的。我们需要为每个操作系统提供单独的JVM。如果我们有任何java源代码的字节码,由于JVM,我们可以轻松地在任何平台上运行它。java文件执行的整个过程如下-首先,我们保存扩展名为.java的java源代码,编译器将其转换为扩展名为.class的字节码。这发生在编译时。现在,在运行时,J

Java是一种流行的编程语言,在开发Java应用程序的过程中,可能会遇到JVM内存溢出错误。这种错误通常会导致应用程序崩溃,影响用户体验。本文将探讨JVM内存溢出错误的原因和如何处理和避免这种错误。JVM内存溢出错误是什么?Java虚拟机(JVM)是Java应用程序的运行环境。在JVM中,内存被分为多个区域,其中包括堆、方法区、栈等。堆是用于存储创建的对象的

Tomcat8如何修改JVM内存配置Tomcat并不建议直接在catalina.sh里配置变量,而是写在与catalina同级目录(bin目录)下的setenv.sh里。所以如果我们想要修改jvm的内存配置那么我们就需要修改setenv.sh文件(默认没有,需新建一个setenv.sh),写入(大小根据自己情况修改):exportCATALINA_OPTS="$CATALINA_OPTS-Xms1000m"exportCATALINA_OPTS="$CATALINA

jvm的垃圾回收机制是GC(Garbage Collection),也叫垃圾收集器。GC基本原理:将内存中不再被使用的对象进行回收;GC中用于回收的方法称为收集器,由于GC需要消耗一些资源和时间,Java在对对象的生命周期特征进行分析后,按照新生代、老年代的方式来对对象进行收集,以尽可能的缩短GC对应用造成的暂停。

Java是一种广泛使用的编程语言,它在开发大型软件系统中扮演着重要角色。与其他编程语言不同,Java采用了一种独特的内存管理方式,即垃圾回收机制。这种机制可以自动处理内存分配和释放,使得Java在编写程序时会更为方便和舒适。然而,在使用Java时,有时候会遇到JVM分配错误的情况。JVM(JavaVirtualMachine)是Java虚拟机的缩写,是执


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Notepad++7.3.1
Easy-to-use and free code editor

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
