Java虚拟机提供几种进行整数算术运算的操作码,他们执行基于int和long类型的运算。当byte、short和char类型值参与算术运算时,首先会将它们转换为int类型。这些操作码都不会抛出异常,溢出在这里通常可以被忽略。

整数加法

操作码

操作数

说明

iadd

(无)

从栈中弹出两个int类型数,相加,然后将所得int类型结果压回栈

ladd

(无)

从栈中弹出两个long类型数,相加,然后将所得long类型结果压回栈

将一个常量与局部变量相加

操作码

操作数

说明

iinc

vindex,const

把常量与一个位于vindex位置的int类型局部变量相加

wide

iinc,index,const

把常量与一个位于vindex位置的int类型局部变量相加

iinc可以用来给局部变量赋值-128~127之间的值。这条操作码与用于控制循环执行的变量的加减相比,效率更高。加上wide可以用来把常量的范围增大到-32768~32767。

整数减法

操作码

操作数

说明

isub

(无)

从栈中弹出两个int类型数,相减,然后将所得int类型结果压回栈

lsub

(无)

从栈中弹出两个long类型数,相减,然后将所得long类型结果压回栈

从栈顶弹出两个数,顶端的充当减数,次顶端的充当被减数。

整数乘法

操作码

操作数

说明

imul

(无)

从栈中弹出两个int类型数,相乘,然后将所得int类型结果压回栈

lmul

(无)

从栈中弹出两个long类型数,相乘,然后将所得long类型结果压回栈

整数除法

操作码

操作数

说明

idiv

(无)

从栈中弹出两个int类型数,相除,然后将所得int类型结果压回栈

ldiv

(无)

从栈中弹出两个long类型数,相除,然后将所得long类型结果压回栈

从栈顶弹出两个数,次顶端的数除以顶端的数(首先被压入栈的数作为被除数或者分子,其次被压入的数作为除数或者分母)。如果整数被0除,会抛出ArithmeticException异常。

整数取余

操作码

操作数

说明

irem

(无)

从栈中弹出两个int类型数,相减,然后将所得int类型余数压回栈

lrem

(无)

从栈中弹出两个long类型数,相减,然后将所得long类型余数压回栈

如果整数被0除,会抛出ArithmeticException异常。

操作码

操作数

说明

ineg

(无)

从栈中弹出两个int类型数,取反,然后将所得int类型结果压回栈

lneg

(无)

从栈中弹出两个long类型数,取反,然后将所得long类型结果压回栈

《深入Java虚拟机学习笔记》- 第12章 整数运算的更多相关文章

  1. 《深入Java虚拟机学习笔记》- 第19章 方法的调用与返回

    <深入Java虚拟机学习笔记>- 第19章 方法的调用与返回

  2. 《深入Java虚拟机学习笔记》- 第16章 控制流

    <深入Java虚拟机学习笔记>- 第16章 控制流

  3. 《深入Java虚拟机学习笔记》- 第17章 异常

    <深入Java虚拟机学习笔记>- 第17章 异常

  4. 《深入Java虚拟机学习笔记》- 第13章 逻辑运算

    <深入Java虚拟机学习笔记>- 第13章 浮点运算

  5. 《深入Java虚拟机学习笔记》- 第14章 浮点运算

    <深入Java虚拟机学习笔记>- 第13章 浮点运算

  6. 《深入Java虚拟机学习笔记》- 第8章 连接模型

    Java虚拟机学习笔记(八)连接模型

  7. 《深入Java虚拟机学习笔记》- 第4章 网络移动性

    Java虚拟机学习笔记(四)网络移动性

  8. 《深入Java虚拟机学习笔记》- 第2章 平台无关

    Java虚拟机学习笔记(二)平台无关

  9. java JDK8 学习笔记——第16章 整合数据库

    第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...

  10. Java虚拟机学习笔记——JVM垃圾回收机制

    Java虚拟机学习笔记——JVM垃圾回收机制 Java垃圾回收基于虚拟机的自动内存管理机制,我们不需要为每一个对象进行释放内存,不容易发生内存泄漏和内存溢出问题. 但是自动内存管理机制不是万能药,我们 ...

随机推荐

  1. 南京邮电大学CTF隐写术部分Writeup

    女神 听说这是女神的私房照,里面藏着flag哦 http://115.28.150.176/misc1.jpg 这个链接居然打不开,摔!万念俱灰!主办方可否给力点! P.S.为了方便日后学习,暂时列下 ...

  2. 关于Eigen库在Visual Studio2013中传参对齐报错问题

    Error as follow: 具体问题及解决办法描述如下: (引自http://www.fx114.net/qa-278-97757.aspx) /************************ ...

  3. hadoop 错误处理机制

    hadoop 错误处理机制 1.硬件故障 硬件故障是指jobtracker故障或TaskTracker 故障 jobtracker是单点,若发生故障,目前hadoop 还无法处理,唯有选择最牢靠的硬件 ...

  4. IOS 数组分组 Grouped NSArray

    NSMutableSet *set=[NSMutableSet set]; [_list enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BO ...

  5. [转载]Unity3D 访问Access数据库

    在开始这个小教程之前呢,其实在网上你已经可以找到相关的资料了,但是我还是要把我自己做练习的一点东西分享出来.写这个教程的主要原因呢,是一个朋友在u3d的官网论坛里,找到了这个demo,但是在他使用的过 ...

  6. APP 上传之后出现"invalid binary" 问题解决汇总

    背景 5.1 号开始 App 审核开始强制支持 iPhone5,并禁止使用 UDID. 问题 上传 app 后一直处于 Invalid Binary 状态,并且收到一封邮件说 Non-public A ...

  7. 如果Java 失宠于Oracle,那么未来会怎么样?

    [编者按]对于前不久 Oracle 裁掉了一部分 Java 布道师,近日一位 Oracle 前高管称其为该机构对Java的「计划报废」.如果这个计划是属实的,那么对于寻常的开发者.已经采用了 Java ...

  8. install Nagios on Unbuntu Unix

    Ubuntu Quickstart Up To: ContentsSee Also: Quickstart Installation Guides, Security Considerations I ...

  9. Qt: 读写二进制文件(写对象, 原始数据等)

    #include <iostream>#include <QFile>#include <QImage>#include <QMap>#include ...

  10. Java基于Servlet 验证吗

    req.setCharacterEncoding("utf-8");        resp.setContentType("text/html;charset=utf- ...