所有的算术指令包括:
- 加法指令:iadd、ladd、fadd、dadd
- 减法指令:isub、lsub、fsub、dsub
- 乘法指令:imul、lmul、 fmul、dmul
- 除法指令:idiv、ldiv、fdiv、ddiv
- 求余指令:irem、lrem、frem、drem
//remainder:余数 - 取反指令:ineg、lneg、fneg、dneg
//negation:取反 - 自增指令:iinc
- 位运算指令,又可分为:
- 位移指令:ishl、ishr、iushr、lshl、lshr、lushr
- 按位或指令:ior、lor
- 按位与指令:iand、land
- 按位异或指令:ixor、lxor
- 比较指令:dcmpg、dcmpl、fcmpg、fcmpl、lcmp
举例
public static int bar(int i) {
return ((i + 1) - 2) * 3 / 4;
}
字节码指令对应的图示:
一个曾经的案例1
代码:
public void add(){
byte i = 15;
int j = 8;
int k = i + j;
}
字节码对应的内存解析:
一个曾经的案例2
代码:
public static void main(String[] args) {
int x = 500;
int y = 100;
int a = x / y;
int b = 50;
System.out.println(a + b);
}
字节码对应的内存解析: