Java基础之自增运算

对于Java里面的自增说明

自增分为前自增和后自增,也就是常说的前加加和后加加。它们作为单目运算符,作用在不同类型的变量类型身上会有不同的效果。


共性:它们最后的结果都会使变量对应的值进行加一操作。
区别:如果结合赋值运算符进行运算时,前自增是先将变量对于的值加一之后,然后再进行赋值操作。而后自增则是先将变量对应的值进行赋值操作,然后再进行加一的操作。

由于对特定类型进行自增操作,会存在一个强制类型转换问题,因此当某一个类型进行自增操作时,结果应该用相同类型的变量来进行接收

1. 对于整数类型的自增操作

1.1 byte、short、char

这三种基本数据类型,任何排列组合进行运算,结果都会转为int类型,但是自增操作会有一个强制类型转换操作。因此必须注意区别~~~

				byte b = 3;
				byte c = b++;
				byte d = ++b;
				System.out.println("b="+b+"\t"+"c="+c+"\t"+"d="+d);
				//结果分别为:b = 5    c = 3  d = 5

这里的b++的实质就是b= (byte) b+1;同理,对于shortchar来说,也是一样。

疑问?为什么 byte b = 3不报错?
其实这是编译器的一个原理,它先会查找所赋的值是否在byte所能容纳的范围内,如果在这个范围内,就可以赋值成功,反之,就会报错~~

1.2 int、long

对于int和long的原理也是类似,它们自增后,也仍然保持自己原有的类型不变。

2.对于浮点数的自增操作

浮点数也是一样的,自增后,仍然保持原有的类型不变。

3.扩展

3.1 和自增类似能保持类型不变的情况就是扩展的赋值运算符,+=、-=、*=、/=、%=,它们和上面的规则一样,都满足运算之后,仍然保持原有的类型不变。

				short c = 12;
				c+=5;
				System.out.println("c="+c);
				//c = 17,此时c的类型仍然为short类型,并不是int类型!

3.2 神奇的自增

				byte i = 12;
				i = i++;
				System.out.println("i="+i);
				// i = 12;

初次看到,肯定会写13,但是是错的!它其实是jvm给我们默认初始化了一个临时变量进行存储。真正的过程是这样的:

				byte i = 12;
				byte temp = i;
				i = (byte) i+1;
				i = temp;

上面就是真正的过程,至于强制类型转换参考上面的运算规则~~

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值