在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的区别相关推荐

  1. java string 占位符_驳《阿里「Java开发手册」中的1个bug》?

    前两天写了一篇关于<阿里Java开发手册中的 1 个bug>的文章,评论区有点炸锅了,基本分为两派,支持老王的和质疑老王的. 首先来说,无论是那一方,我都真诚的感谢你们.特别是「二师兄」, ...

  2. word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...

    用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...

  3. java中JFrame类中函数addWindowListener(new WindowAdapter)

    在java编写的过程中常常遇到样的一段代码 frame.addWindowListener(new WindowAdapter() {@Override public void windowClosi ...

  4. java string与integer_Java中Integer和String浅谈

    http://qxzxcjq-126-com.iteye.com/blog/883283 Java中的基本数据类型有八种:int.char.boolean.byte.long.double.float ...

  5. maven只打包java目录_ssm项目中maven对resources目录打包的路径_默认路径,自定义路径...

    博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): ssm项目打包后mybatis的mapper.xml文件没有放进去 问题出现的原因: ssm项目打包后mybatis的m ...

  6. Java中public,private,protected以及default的访问权限区别

    ** Java中public,private,protected以及default的访问权限区别 ** 首先,从public的字面意思上就能够知道public所指的是公共的,从而我们可以知道publi ...

  7. JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。

    JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用. 今天再次设置java的环境变量,突然发现每次设置都只是按照步骤一步步将其设置完,并不了解为啥要设置,于是上网找了找 ...

  8. 类的包访问权限:《Java编程思想》中一段话的困惑

    类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...

  9. java初学者的书中收获

    Java初学者的书中收获 搜索关于java老师的记忆碎片,第一节课的记忆······其实java比c语言简单许多,也许老师的这句话是对的.可是作为一个初学者,感觉自己因为付出的时间没有在学c语言的时候 ...

最新文章

  1. ProtoBuf格式详解
  2. python解包裹_关于Python中包裹传参和解包裹的理解
  3. linux 指令tftp传输文件_Linux tftp命令使用详解:在本机与tftp服务器之间使用TFTP协议传输文件...
  4. java当前时间转化毫秒_Java学习笔记-时间相关类
  5. C#排队处理DEMO
  6. 剑指offer--求1+1+3+....n的和
  7. linux之so文件、a文件、o文件的区别
  8. 创建接口匿名实现类的对象的四种方法
  9. zabbix2.4监控mysql_Zabbix 2.4.5自带MySQL监控的配置使用教程
  10. 【BZOJ2460】元素(线性基---(id,value)绑定,求id异或非0对应的最大value 和)
  11. 【分享】 图片轮换--函数化继承
  12. uc如何HTML编辑,电脑端UC浏览器如何对书签进行编辑
  13. 数据结构保研面试题整理(自用)
  14. html表格的基础知识及源代码-尚硅谷
  15. 小波变换matlab代码,matlab小波变换代码
  16. Java数据可视化 (JavaFX, Apache ECharts)
  17. 导致word文档损坏故障发生的原因是什么?
  18. 关于MOS管栅极和栅介质(氧化物)的材料选择
  19. 模仿360buy商品比较的jquery插件
  20. 365天挑战LeetCode1000题——Day 079 力扣周赛专题 米哈游 检查相同字母间的距离 恰好移动 k 步到达某一位置的方法数目 最长优雅子数组

热门文章

  1. wampserver在线但localhost打不开 解决方法
  2. matlab图像转为灰度,matlab怎么读取一幅图像,并转换为灰度图像
  3. 小身材也有强劲性能,树莓派2代B型图形界面搞机
  4. html 萤火虫特效,jquery萤火虫飞舞动画特效插件
  5. PHP全栈学习笔记29
  6. 5款神级软件,装机必备,不看后悔
  7. 色光三原色RGB相加减
  8. 跨界联名,会是B站品牌营销出圈的突破口吗?
  9. 现实世界的Windows Azure:与迈阿密市的信息科技助理署长,James Osteen 的访谈 (转)...
  10. excel熵值法计算权重_熵值法的Excel基本步骤