【面试题】s += 1 和 s = s + 1的区别

文章目录

1.问题

以下两个程序真的完全等同吗?

short s = 0;

s += 1;
short s = 0;

s = s + 1;

2.发现过程

初看s += 1 和 s = s + 1好像是等价的,没有什么区别。很长一段时间内我也是这么觉得,因为当时学习c语言的时候教科书上将s += 1转换成s = s + 1帮助我们去理解,所以我将这个迁移到了java语言当中。但是直到遇到了一个有意思的题目,于是亲自在idea中去测试了一下,结果发现s += 1 没有报错,而 s = s + 1报错了。

通过idea我们会发现,报错的原因是因为我们将short类型赋值给int类型,而没有进行强制类型转换。

3.解析


s += 1的底层会有一个强制类型转换,将右边的结果转换成s的类型。

作者:Listener-1379    

出处:Listener-1379博客

github地址:https://github.com/beyong2019

本博客中未标明转载的文章归作者Beyong有,欢迎转载,但未经作者同意必须保留此段声明,且在文章明显位置给出原文连接,否则保留追究法律责任的权利。

相关推荐
时间的拾荒人32 分钟前
Qt 界面美化实战:QSS 样式表
开发语言·qt·面试
法欧特斯卡雷特4 小时前
Kotlin 新特性抢先看:伴生扩展与伴生块
后端·面试·开源
YonyouHRSaaS5 小时前
2026年10-11月AI面试选择指南:对国内主流AI面试系统进行对比,看看哪个更值得选!
人工智能·面试·职场和发展·hr·ai面试
浅念-6 小时前
动态规划专题:斐波那契数列模型 + 网格路径DP(LeetCode例题全解析)
笔记·算法·leetcode·面试·职场和发展·动态规划·推荐算法
落魄大学生之流水线上谋生计6 小时前
接口测试实习指南:从基础方法到面试与现场难题
面试·职场和发展
程序员清风7 小时前
AI时代建议学点自己真正感兴趣的!
java·后端·面试
(Charon)7 小时前
【C++面试】线程同步机制:互斥锁、条件变量、原子操作与读写锁
开发语言·c++·算法·面试
花间相见8 小时前
【计算基础|网络06】HTTPS(上):加密体系与 RSA 握手
后端·面试
JAVA面经实录9178 小时前
Java高级后端 · 全套面试通关手册(Nginx)
java·nginx·面试
考研保研资料分享9 小时前
211工商管理保研北大光华:夏令营笔试、科研面试与人力资源复习经验
面试·职场和发展