标签:
1、java中的“+”运算符不仅可以运算加减,而且可以实现字符串的拼接,例如 someString + someOtherString = aThirdString。严格来说,加法运算符和字符串拼接运算符是不同的,只是他们使用同一个符号:+。JVM能在运行上下文得知加号究竟是指加法运算符还是字符串拼接运算符。如果JVM判断出上下文是数字,它就执行加法运算;如果JVM判断出上下文是文本,它就执行字符串拼接运算。
int a = 1; int b = 2; int c = 3; System.out.println(a + b + c); System.out.println("a + b + c = "+ a + b + c); System.out.println("a + b + c = "+ (a + b + c)); //运行结果 6 a + b + c = 123 a + b + c = 6
第一行的上下文是数字,因为println方法处理的第一个值是数字。第二行的上下文是文本,因为println方法处理的第一个值是字符串字面常量。第三行输出能得到正确的结果,是因为括号强制先执行加法运算,即使上下文是文本类型。
2、复合赋值运算的问题
int myInt = 2; myInt *= (myInt = 4); System.out.println(myInt);
标签:
原文地址:http://my.oschina.net/dataRunner/blog/491959