关于x=x++注意事项

一、问题提出。

输出0123456789

输出12345678910

输出0123456789

输出全部为0

二、解释。

x对应一个变量表的槽位,初始值为0,x++对应两条字节码指令iload_x(将x槽位对应的值加载到操作数栈),iinc x1(对x所在的槽位的值进行加一),此时操作数栈的值为0。

自增过后槽位中的x变为了1,但是后面的赋值操作是将操作数栈中的0赋值给本地变量中的x,所以x的值仍然为0。所以循环多次之后,x依然是0。

而vs输出12345678910则是编译器的问题,没必要在意。

三、总结。

在java中,x=x++会导致x始终为初始值,在写代码的时候要避免。

相关推荐
她说彩礼65万1 天前
C# ConcurrentDictionary详解
java·服务器·c#
Han.miracle1 天前
Maven 基础与 Spring Boot 入门:环境搭建、项目开发及常见问题排查
java·spring boot·后端
特拉熊1 天前
23种设计模式之桥接模式
java·架构
半瓶榴莲奶^_^1 天前
后端Web进阶(AOP)
java·开发语言
麻辣烫不加辣1 天前
跑批调额系统说明文档
java·后端
一只乔哇噻1 天前
java后端工程师+AI大模型开发进修ing(研一版‖day61)
java·开发语言·学习·算法·语言模型
拾忆,想起1 天前
Dubbo服务降级全攻略:构建韧性微服务系统的守护盾
java·前端·网络·微服务·架构·dubbo
zlpzlpzyd1 天前
jetbrains系工具idea和webstorm默认编辑器设置
java·intellij-idea·webstorm
@YDWLCloud1 天前
谷歌云 Compute Engine 实操手册:虚拟机配置与负载均衡全流程
java·运维·服务器·云计算·负载均衡·googlecloud
shenzhenNBA1 天前
如何在python项目中使用日志功能?通用版本
java·开发语言·python·日志·log