在java语言中,a+=b和a=a+b的主要区别是在运算的精度上。类似的有“-= 、 *= 、/= 、%= ”,这里以a+=b 与 a=a+b 举例说明一下。

1.下面是一串代码,我们试一下a=a+b的形式:

public class TestDemo {

public static void main(String[] args) {

byte a=1;

a=a+4;

System.out.println(a);

}

}

从图中可以看出出现了错误,根本无法运行。报错原因我也贴出来了,说是“类型不匹配:不能从int转换为byte”,

这里因为a是byte类型,而数字4默认是int 类型。在java中,在a+4时,会进行 自动类型转换 ,所以a+4 会转换成int类型。而变量a还是byte类型,将int 类型的a+4赋值给byte类型的a ,无疑会报错。

当然,我们也可以进行强类型转换,将已经转换成int类型的a+4强制转换为byte类型,这样也是可以的。但是这种转换可能会导致溢出或者精度的下降,如果容忍可能出现的误差,可以使用这种转换。

下面是转换的结果:

publicclass TestDemo {

public static void main(String[] args) {

byte a=1;

a=(byte)(a+4);

System.out.println(a);

}

}

(2)下面试一试a+=b的形式

public class TestDemo {

public static void main(String[] args) {

byte a=1;

a+=4;

System.out.println(a);

}

}

我们发现结果是正确的,程序也没毛病。大家需要明确的是“+=”是java中的一个运算符,而不是两个,所以在运算时 会进行自动类型转换。所以在编译时没有报错。

(3),总结一下,在两个变量的数据类型一样时:a+=b 和a=a+b 是没有区别的。

但是当两个变量的数据类型不同时,就需要考虑一下数据类型自动转换的问题了。

也就是涉及到精度了。

Java里a和b哪个大_Java中 a+=b和a=a+b有什么区别?相关推荐

  1. java里类得继承详细讲解_java中类的继承详解。

    前言 继承是面向对象的三大特征之一. 也是实现软件复用的重要手段. Java继承具有单继承的特点, 每个子类只有一个直接父类. 继承的特点 Java的继承通过extends关键字实现. 实现继承的类被 ...

  2. java jar包和war包_java中jar包和war包之间有什么区别

    原标题:java中jar包和war包之间有什么区别 jar包 简单地说,JAR(Java Archive)是一种包文件格式.JAR文件具有.jar扩展名,可以包含库.资源和元数据文件. 本质上,它是一 ...

  3. java 继承 实现 会重写 方法吗_java 中继承,组合,重载,重写的实现原理 (转)...

    我们知道,继承,组合,重载,重写是java语言的面向对象实现的基本特征. 那么在java内部,究竟是如何实现这些面对对象的基本特征的呢? 继承和组合是面向对象中代码复用的主要实现方式,他们可以达到类似 ...

  4. java中双引号和单引号_Java中的单引号和双引号之间有区别吗?

    问题 Java中的单引号和双引号之间有区别吗? #1 热门回答(126 赞) 对于literalchar使用单引号,对于literalString使用双引号,如下所示: char c = 'a'; S ...

  5. sql语句和java的关系_java中Statement 与 PreparedStatement接口之间的关系和区别

    Statement 和 PreparedStatement之间的关系和区别. 关系:PreparedStatement继承自Statement,都是接口 区别:PreparedStatement可以使 ...

  6. java多线程同步的四种方法_java中实现多线程的两种方法

    java多线程有几种实现方法,都是什么?同步有几种实java中多线程的实现方法有两种:1.直接继承thread类:2.实现runnable接口:同步的实现方法有五种:1.同步方法:2.同步代码块:3. ...

  7. Java所有函数都是动态的_Java中的函数动态调用

    //------------------------------------- //类ArgumentHolder //用于调用参数的封装,实现变长参数及 //不同类型参数的统一形式地传递 //成员变 ...

  8. java里SQL insert操作的语法_Java含个人总结语法:JDBC,学生表,实体类,集合,增删改查,注入,预处理【诗书画唱】...

    create table denglu( uname varchar(30), upwd varchar(30) ) insert into denglu values('诗书','123') ins ...

  9. java里的aip文件在那_Java:笔记:生产AIP文档

    使用eclipse生成API文档的方: 1.在声明方法的前一行输入/**并回车,会自动生成基本的注释信息. 2.使用导出功能的里面的java --javadoc功能. 3.生成html文件,但是文件有 ...

最新文章

  1. Centos5.5完整安装Cacti+Spine
  2. 《智慧书》格言241-250
  3. 哔哩哔哩服务器在哪个文件夹,哔哩哔哩缓存在哪个文件夹 具体操作步骤
  4. linux gpio设备驱动程序,嵌入式Linux设备驱动开发之:GPIO驱动程序实例-嵌入式系统-与非网...
  5. C语言 野指针 - C语言零基础入门教程
  6. 微信小程序python解析获取用户手机号_python获取微信小程序openid及用户信息
  7. java读取mysql配置文件_Linux运维:MySQL读写分离解决方案
  8. 4019-平衡二叉树的高度的计算(C++,附思路)
  9. java 判断图片损坏_如何在Java中检测损坏的图像(PNG,JPG)
  10. 华为云郑叶来:优势挡不住趋势,技术创新是主旋律
  11. Linux命令(1)—— xargs 命令
  12. warning: C4819的解决办法
  13. 【codeVS 1082】树状数组(区间修改,区间查询)模版题
  14. HDU 2037 贪心
  15. DroidCamX 让你的android手机摄像头变身电脑网络摄像头
  16. 如何反编译微信小程序前端,30分钟教你学会
  17. python判断用户名密码是否正确_Python 判断输入的用户名和密码是否正确
  18. 递归实现 1,1,2,3,5,8,….第 30 个数是多少?
  19. 2021年N1叉车司机免费试题及N1叉车司机考试总结
  20. 电商网络推广是干什么,电商网络营销做什么

热门文章

  1. 深入解读:获Forrester大数据能力高评价的阿里云DataWorks思路与能力
  2. 从能用到好用,GIS信创如何做到行稳致远?
  3. 续写传奇,浪潮存储凭何脱颖而出
  4. 金山云纳斯达克敲钟上市 不负时代的机遇
  5. 想要AI优先?数据优先才行
  6. java mssql jdbc_从零开始学JAVA(05)-连接数据库MSSQL(JDBC代码篇)
  7. python websocket模块_python websocket学习使用
  8. 鸿蒙系统华为什么手机你能用,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  9. KAFKA 同步和异步消息的发送(开发实战)
  10. cnpm不是内部或外部命令 cnpm: command not found 解决方案 cnpm