JVM--a == (a = b)基于栈的解释器执行过程
2024-10-08 15:53:44
前言
在翻阅ConcurrentLinkedQueue的代码的时候,发现这样一段代码在JDK源码中总是出现。
t != (t = tail) 原先总是以为这不就是 t != t ?很是纳闷,遂Demo了一下发现并不是我想象中的那样..
Demo
在运算符优先级当中寻找答案好像是找不出什么答案了,至少我没有想通..
刚好看了JVM之后一直没有用过相关的东西,这次便从字节码层面来探个究竟..
字节码
查看字节码内容
stack = 4,需要深度为3的操作数栈
locals = 3,需要3个Slot的局部变量空间
常量池
执行过程
下面就来看一下,Java这种基于栈的解释器是怎么执行这个Demo的。
附录
虚拟机字节码指令表
https://www.jianshu.com/p/e057695f1184
最新文章
- LINUX 设置ll的时候显示日期的格式
- php基础_字符串
- hadoop之根据Rowkey从HBase中查询数据
- hihocoder #1179 : 永恒游戏 暴力
- Oracle 常用操作
- js中apply和call的用法 以及apply的妙用 (来自网络)
- HTTP1.1协议中文版-RFC2616
- jQuery方式事件冒泡的2个方法
- windows和linux删除文件方法
- BOM浏览器对象模型下面几个比较实用的方法
- vim 命令整理(自己经常使用)
- 【一天一道LeetCode】#78. Subsets
- vue的混合mixins学习
- hdu 5183(Hash处理区间问题)
- 在winform上内嵌入其它的程序
- 通过HTTP协议发送远程消息
- 2017-2018-1 20155209 实现mypwd
- C语言read函数的那些坑
- Windows 使用 Gitblit 搭建 Git 服务器
- Problem W: 零起点学算法21——求平均值
热门文章
- vs code 本地调试配置
- SSIS 無法將保護的 XML 節點 ";DTS:Password"; 解密,錯誤為 0x8009000B ";機碼用在特定狀態時無效
- PHP的错误知识
- 学习进度-11 RDD 编程初级实践
- RabbitMq学习笔记——MingW编译RabbitMQ C
- KVM——虚拟化
- 《跟老齐学Python:从入门到精通》齐伟(编著)epub+mobi+azw3
- jenkins 2.204.2 安装, 使用国内源安装, 并且跳过插件界面, 更新成国内插件源.
- Day10 - A - Rescue the Princess ZOJ - 4097
- 洛谷 P1886 滑动窗口 /【模板】单调队列