博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中a=a+1和a+=1的区别
阅读量:6926 次
发布时间:2019-06-27

本文共 417 字,大约阅读时间需要 1 分钟。

我们先看一段代码:
1 byte b=2;2 b=b+1;3 System.out.println(b);

 

运行结果:
错误: 不兼容的类型: 从int转换到byte可能会有损失
                        b=b+1;
                          ^
1 个错误
报错的原因是short变量在参与运算时会自动提升为int类型,b+1运算完成后变为int,int赋值给short报错。
换成+=的情况:
1 byte b=2;2 b+=1;3 System.out.println(b);
编译通过,输出结果3。
这是因为b+=1并不是完全等价于b=b+1,而是隐含了强制类型转换,相当于b=(short)(b+1)。
注意:+=不会进行溢出检查
1 byte b=127;2 b+=1;3 System.out.println(b);
输出结果是-128,开发中要特别注意。

 

转载于:https://www.cnblogs.com/qiu1125584190/p/7888858.html

你可能感兴趣的文章
浅谈变量类型之外的变量命名
查看>>
Mixin Network第一届开发者大赛作品介绍- iXin和SuperCard
查看>>
20个数据库常见面试题讲解
查看>>
推荐一份 Google 面试指南
查看>>
React实战篇(React仿今日头条)
查看>>
iOS--TextView自适应高度以及键盘遮挡问题
查看>>
QuickBI助你成为分析师-数据建模(二)
查看>>
开源库小技巧+1,在 ContentProvider 中初始化
查看>>
egg sequelize 实践
查看>>
我们为什么需要 lock 文件
查看>>
java发送邮件方法的整理
查看>>
node.js gulp 自动化构建工具
查看>>
要点提炼| 理解JVM之类加载机制
查看>>
Android NDK开发之旅11 JNI JNI数据类型与方法属性访问
查看>>
移动端H5页面注意事项
查看>>
不思考才是真正的危机
查看>>
MacbookPro使用小记
查看>>
基于 Gradle 的 Android gif 录屏脚本,录屏并自动上传至电脑,给常写博客的你~...
查看>>
MySQL5.7解压版安装
查看>>
告诉你 SQL 数据库与 NoSQL 数据库的区别
查看>>