操作数栈的字节码指令执行分析

一:写个demo

 

二:点击Recompile编译

 

三:使用javap命令反编译class文件        javap -v 类名.class

 

四:查看结果

 

 

五:分析执行过程

首先bipush意思是把byte类型的变量i的值15存放到操作数栈中,istore_1的意思是把操作数栈中int类型的i的值取出来存放到局部变量表中索引为1的位置,为什么一开始就从索引1开始存的,因为这个方法不是静态方法,局部变量表的索引0位置存放了this,接着操作数栈就没有了,i出栈了,接着bipush 8的意思是把8放到操作数为索引0的位置上,接着istore_2的意思是把操作数栈中的8存放到局部变量表索引为2的位置上,iload_1和iload_2指令的意思是把局部变量表中索引为1和2位置的数据依次取出来,放到操作数栈中,接下来进行iadd操作,接着出栈,这个字节码指令被执行引擎翻译成机器指令,然后被cpu执行,由cpu运算,把8和15相加的和23,接着23放到了操作数栈中,istore_3意思是把23以int类型存储到局部变量表中索引为3的位置上,最后因为方法没有其他操作,没有返回值,最后return结束

(byte,short,char,boolean 都以int型来保存)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式数据库基础:分布式事务相关概念介绍

1、事务的定义事务式访问数据库的一个逻辑工作单位,它属于一个操作序列,执行这个操作序列使数据库从一种一致状态转换到另外一种一致状态,从而实现特定业务的功能。2、分布式事务的定义分布式事务属于传统事务的扩展,分布式事务继…

windows比linux差在哪,怎么让新手理解Linux比Windows好在哪里!

pingpang2008 于 2009-06-17 08:54:31发表:人好多啊hantu 于 2009-06-16 23:28:57发表:哈哈,偏偏很多人就是不爽windows了才用Linux的刘冲 于 2009-06-16 21:44:08发表:linux比windows好吗?wayoking 于 2009-06-16 20:45:11发表:理解了,谢谢cscs2002 于 …

大型分布式存储方案MinIO介绍,看完你就懂了!

1、MinIO是什么?官方解释:MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,…

部署好网站,同局域网中电脑无法访问的问题的解决方案

“部署好网站,同局域网中电脑无法访问的问题的解决方案"。 第一,Win7安装IIS后,本地测试没问题,说明IIS配置正确;如果本地测试有问题,先检查IIS安装配置情况。 第二,检查计算机网络情况&am…

linux下julia的开发环境,Ubuntu搭建Julia远程开发环境

Julia作为一门新兴的编程语言,还是可以学一学的,这里总结了一下Ubuntu系统远程搭建Julia开发环境的方法。前期准备:云服务器一台,操作系统为Ubuntu18.04,xshell6 vscode。环境安装;首先使用xshell远程连接云服务器&am…

ElementUI:文本框实现远程搜索的用法

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

栈桢的结构

栈桢里面主要有局部变量表,操作数栈,方法返回地址,动态链接,和一些附加信息

Android事件总线

Android中Activity、Service、Fragment之间的相互通信比较麻烦,主要有以下一些方法: (1)使用广播,发送者发出广播,接收者接收广播后进行处理; (2)使用Handler和Message,如下载线程完成下载任务后&#xff0…

分布式数据库基础:分布式数据库故障

分布式数据库系统常见的故障主要有事务故障、系统故障、介质故障、网络引起的故障。事务故障:计算溢出、完整性破坏、操作员干预、输入输出报错等。介质故障:存放数据的介质发生的故障,比如磁盘、磁盘的损坏等等。系统故障:CPU出错…

动态链接(指向运行时常量池的方法引用)

动态链接(指向运行时常量池的方法引用)

电脑技巧:C盘爆满该如何清理,实用的清理方案,小白必备

有用户和小编说,C盘就像是一个无底洞,无论给它分多大的分区,Windows操作系统总有办法给它填满!相信很多朋友也有这样的感受吧?其实,好像休眠文件、系统页面文件等等GB大“人物”是驻扎在C盘的,此…

操作系统:电脑的回收站的秘密你知道吗?

电脑的回收站的秘密你知道吗? 今天小编给大家介绍一下有关电脑回收站的相关知识,赶紧来看看吧! 回收站是所有磁盘驱动空间中的一个区域。 鼠标右键打开电脑桌面回收站的属性面板,在属性面板中可以看到所有的系统驱动程序使用了同一设置选项,可…

【Qt开发】QSplitter的使用和设置

Qt库版本:5.2.1 Qt Creator版本:3.0.1 1 QSplitter的用途 QSplitter使得用户可以通过拖动子窗口之间的边界来控制它们的大小,例如 图1 窗口拆分示意图 2 QSplitter的添加方法 QSplitter的添加方法有2种:a)通过Qt Creator的界面设计…

异星工厂mod位置linux,异星工厂存档在哪里

异星工厂存档在哪里想必有些小伙伴还不是很清楚的吧,所以呢今天小编就为大家带来了异星工厂MOD安装位置介绍,一起来了解一下吧。异星工厂存档在哪里%appdata%/factorio等同于C:\Users\您的用户名\AppData\Roaming\Factorio因为各位的电脑用户名不一样。所…

电脑技巧:电脑键盘F1~F12按键的妙用

目录 F1:帮助键 F3:搜索按键 F4:打开浏览器历史列表 F5:刷新功能 F6:定位地址栏 F7:在“命令提示符”中调用历史指令 F8:启动系统高级菜单 F9:无 F10:需要与Shift组合使用&#xff0…

linux vim基本操作,vim基本操作笔记

在Linux系统中有多种代码编辑器,例如vim, gedit, emacs。这这些编辑器各有所长,就我个人而言,对于比较短的代码,一般可以用vim解决就不用其它的工具,而长代码的情况下更喜欢用gedit,这个gnome自带的代码编辑…

操作系统:Win10系统下LocalNow和Roaming文件夹介绍

Win10操作系统下AppData文件夹包括以下子文件夹 - 漫游,本地和本地。 几乎每个在Win10 PC上安装的程序都会在AppData文件夹中创建自己的文件夹,并将其所有相关信息存储在其中。AppData或应用程序数据是Windows 10中的一个隐藏文件夹,可帮助保…

[noip2010]关押罪犯 并查集

第一次看的时候想到了并查集&#xff0c;但是不知道怎么实现&#xff1b; 标解&#xff0c;f[i]表示i所属的集合&#xff0c;用f[in]表示i所属集合的补集&#xff0c;实现的很巧妙&#xff0c;可以当成一个使用并查集的巧妙应用&#xff1b; 1 #include<iostream>2 #incl…