java运算符

来源:互联网 发布:三毛作品 知乎 编辑:程序博客网 时间:2024/06/09 15:23

1、++i和i++的区别(--i和i--一样)

    1)单独使用

public class TestDemo{public static void main(String[] args) {int a = 1;int b = 1;a++;++b;System.out.println("a = " + a + ", b = " + b);}}

运行结果:


    2)赋值使用

public class TestDemo{public static void main(String[] args) {int a = 1;int b = 1;a++;++b;System.out.println("a = " + a + ", b = " + b);}}

运行结果:

综上所述:

当单独使用时,++i和i++效果是一样的,都是做自加运算。而在和赋值语句一起使用时,++在前,i先自加,再赋值;++在后,先赋值,再自加。c = ++a,a进行自加,然后再赋值给c,所以c的输出结果为2;而d=b++,b先将自己的值赋给d,然后再进行自加,所以d = 1;变量a和b都进行了自加运算,所以输出结果都为2。

2、i += 1 和 i = i + 1的区别

一直以来都以为这两个表达式是等效的,但是在看了传智播客刘意老师的视频后发现并非如此

public class TestDemo{public static void main(String[] args) {byte b = 100;b = b + 1;}}

编译报错:

public class TestDemo{public static void main(String[] args) {byte b = 100;b += 1;}}

编译通过:

由此可以看出i += 1和i = i + 1并不是等效的,i += 1应该等效于i = (byte) (i + 1),在本例子中,i的数据类型为byte,实际上i += 1应该等效于i = (i的数据类型) (i + 1),此处有一个隐含的数据强转过程。

原创粉丝点击