java中a= b_Java中a+=b和a=a+b的区别
在Java语言中a+=b和a=a+b是有区别的,主要的区别是在运算时精度的问题,当然了-=、*=、/=,%=也都是一个道理。这里以a+=b和a=a+b为例做说明。
(1)下面以一段Java程序为例,试一试a+=b的形式:
public classDemo
{
public static void main(String[] args)
{
short a=4;
a+=5;
System.out.println(a);
}
}
可以看出这段程序的结果是9,程序没有问题的。需要明确的是“+=”这个运算符在Java中是一个运算符,而不是两个,程序在执行“+=”时,会自动向高精度进行数据类型转换。所以上面的程序在执行时编译器没有报错。
(2)下面试一试a=a+b的形式:
public classDemo
{
public static void main(String[] args)
{
short a=4;
a=a+5;
System.out.println(a);
}
}
可以从截图中看出在使用a=a+b的形式时出现了问题,因为a是short类型的变量,而5默认为int类型的变量,short类型+int类型结果肯定会自动转换成int类型啦,
此时就存在数据类型不一致的问题,用short类型的变量去保存int类型的变量编译器当然会报错了,就好比你用装一两水的杯子去装二两水,
当然是装不下的,如果你非要用装一两水的杯子去装二两水,肯定可以硬到进去,但是肯定会洒掉一部分水。所以如果这里非要用short类型的变量去装int类型的数据,可以用强制转换,确定是会丢失精度。
以下是强制转换后的结果:
public classDemo
{
public static void main(String[] args)
{
short a=4;
a=(short)(a+5);
System.out.println(a);
}
}
(3)总结一句,这两种形式的主要区别在于是否进行数据类型的自动转换,当两个操作数同类型时这两种形式的运算结果是没有差别的,当两个操作数数据类型不同时,
且左操作数即保存结果的操作数的数据精度要低,此时这两种形式才有区别。
java中a= b_Java中a+=b和a=a+b的区别相关推荐
- java string 占位符_驳《阿里「Java开发手册」中的1个bug》?
前两天写了一篇关于<阿里Java开发手册中的 1 个bug>的文章,评论区有点炸锅了,基本分为两派,支持老王的和质疑老王的. 首先来说,无论是那一方,我都真诚的感谢你们.特别是「二师兄」, ...
- word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...
用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...
- java中JFrame类中函数addWindowListener(new WindowAdapter)
在java编写的过程中常常遇到样的一段代码 frame.addWindowListener(new WindowAdapter() {@Override public void windowClosi ...
- java string与integer_Java中Integer和String浅谈
http://qxzxcjq-126-com.iteye.com/blog/883283 Java中的基本数据类型有八种:int.char.boolean.byte.long.double.float ...
- maven只打包java目录_ssm项目中maven对resources目录打包的路径_默认路径,自定义路径...
博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): ssm项目打包后mybatis的mapper.xml文件没有放进去 问题出现的原因: ssm项目打包后mybatis的m ...
- Java中public,private,protected以及default的访问权限区别
** Java中public,private,protected以及default的访问权限区别 ** 首先,从public的字面意思上就能够知道public所指的是公共的,从而我们可以知道publi ...
- JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。
JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用. 今天再次设置java的环境变量,突然发现每次设置都只是按照步骤一步步将其设置完,并不了解为啥要设置,于是上网找了找 ...
- 类的包访问权限:《Java编程思想》中一段话的困惑
类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...
- java初学者的书中收获
Java初学者的书中收获 搜索关于java老师的记忆碎片,第一节课的记忆······其实java比c语言简单许多,也许老师的这句话是对的.可是作为一个初学者,感觉自己因为付出的时间没有在学c语言的时候 ...
最新文章
- ProtoBuf格式详解
- python解包裹_关于Python中包裹传参和解包裹的理解
- linux 指令tftp传输文件_Linux tftp命令使用详解:在本机与tftp服务器之间使用TFTP协议传输文件...
- java当前时间转化毫秒_Java学习笔记-时间相关类
- C#排队处理DEMO
- 剑指offer--求1+1+3+....n的和
- linux之so文件、a文件、o文件的区别
- 创建接口匿名实现类的对象的四种方法
- zabbix2.4监控mysql_Zabbix 2.4.5自带MySQL监控的配置使用教程
- 【BZOJ2460】元素(线性基---(id,value)绑定,求id异或非0对应的最大value 和)
- 【分享】 图片轮换--函数化继承
- uc如何HTML编辑,电脑端UC浏览器如何对书签进行编辑
- 数据结构保研面试题整理(自用)
- html表格的基础知识及源代码-尚硅谷
- 小波变换matlab代码,matlab小波变换代码
- Java数据可视化 (JavaFX, Apache ECharts)
- 导致word文档损坏故障发生的原因是什么?
- 关于MOS管栅极和栅介质(氧化物)的材料选择
- 模仿360buy商品比较的jquery插件
- 365天挑战LeetCode1000题——Day 079 力扣周赛专题 米哈游 检查相同字母间的距离 恰好移动 k 步到达某一位置的方法数目 最长优雅子数组
热门文章
- wampserver在线但localhost打不开 解决方法
- matlab图像转为灰度,matlab怎么读取一幅图像,并转换为灰度图像
- 小身材也有强劲性能,树莓派2代B型图形界面搞机
- html 萤火虫特效,jquery萤火虫飞舞动画特效插件
- PHP全栈学习笔记29
- 5款神级软件,装机必备,不看后悔
- 色光三原色RGB相加减
- 跨界联名,会是B站品牌营销出圈的突破口吗?
- 现实世界的Windows Azure:与迈阿密市的信息科技助理署长,James Osteen 的访谈 (转)...
- excel熵值法计算权重_熵值法的Excel基本步骤