java 中的“+”你真的了解吗?

1.若+两边连接的是基本数据类型,则是加法运算(基本数据类型中除boolean都是可以参与加法运算的)。

(1)在整型及浮点型数据相加中,若是同类型数据相加,则直接加和。若是不同数据类型相加,为了避免数据溢出,则结果会自动提升为大字节的数据类型,即:自动类型提升。例如

值得注意的是比int字节小的类型相加,结果都会提升为int型。(byte+byte,byte+short等) 

 (2)若是字符型(char)数据相加,结果不是字符,而是一个整型数据,例如

 因为字符型变量存储的是该字符对应的ASCII码值,A对应的是65,B对应的是66,所以结果为131。

而字符型与其他基本数据类型(boolean除外)相加,char会自动提升为int。例如:

2.当+两端有字符串(String)类型时(一个或两个),+不再是加法运算,而符串的拼接,即不改变原有数据,直接将前后的数据拼在一起。例如:

 ***误区:在表达式中出现多个+时,要注意计算机的读取规则:从左向右!例如:

String s="ABC";
int a=1;
int b=2;
System.out.println(s+a+b);
String s="ABC";
int a=1;
int b=2;
System.out.println(a+b+s);

它们的结果是不同的!

(1)

第一个+左端为字符串,所以为拼接,而拼接之后仍是字符串,所以第二个+左端还是字符串,也是拼接。

(2) 

 第一个+两端左边均为int,为加法运算,结果为int,第二个加号右端为字符串,为拼接,从左到右依次运行的结果为:3AB。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值