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. easy ui datagrid 动态绑定数据并绑定链接,进行操作

    ①.绑定datagrid,formatter { field: 'ShopId', title: '操作', width: 200, align: 'left', formatter: showSho ...

  2. TWaver3D入门探索——3D拓扑图之绽放的小球花

    这样一簇绚烂丰满艳丽多姿的3D小球花,要多少代码才能完成?其实不足百行,您信吗?下面咱就看一下具体实现过程,让您分分钟学会用TWaver HTML5制作3D拓扑图. 搭建3D空间 首先为花簇的绽放建一 ...

  3. 实时数据处理环境搭建flume+kafka+storm:2.flume 安装

    1.  解压  tar -zxvf     2.配置       拷贝配置文件 :cp flume-conf.properties.template flume-conf.properties     ...

  4. springmvc 数据对象回绑

    springmvc中,由页面 post到 controller,对象可以在form里面设置modelAttribute达到回绑的目的. 但是如果对象里面有复杂的非String,int的对象,则要在co ...

  5. kill 进程卡住,超时kill方法

    还是有漏洞 ,万一 working.py未超时, kill_job.sh 会不会杀死别人的进程啊start.sh#!/bin/bash python working.py &python wo ...

  6. The 6th Zhejiang Provincial Collegiate Programming Contest->ProblemA:Second-price Auction

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3202 题意:拍卖东西,以第二高价的价格卖给出第一高价的人.输出最后获得东西 ...

  7. hdu 4649 Professor Tian 反状态压缩+概率DP

    思路:反状态压缩——把数据转换成20位的01来进行运算 因为只有20位,而且&,|,^都不会进位,那么一位一位地看,每一位不是0就是1,这样求出每一位是1的概率,再乘以该位的十进制数,累加,就 ...

  8. MySql不同版本安装

    1.win7 64位下如何安装配置mysql-5.7.4-m14-winx64  1. mysql-5.7.4-m14-winx64.zip下载 2.解压到D:/mysql.(路径自己指定) 3.在D ...

  9. Java Socket实战之一 单线程通信

    本文地址:http://blog.csdn.net/kongxx/article/details/7259436 现在做Java直接使用Socket的情况是越来越少,因为有很多的选择可选,比如说可以用 ...

  10. 200. Number of Islands

    题目: Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is s ...