除法运算:整数除以整数,结果还是整数,java的规则,保持数据类型的一致性
System.out.println(10/3); //3 System.out.println(10.0/3); //3.333333
取模运算,即取余数,结果符号只与左边有关,与右边无关
System.out.println(-10%3); //-1 System.out.println(10%-3); //1 System.out.println(-10%-3); //-1
int a = 666; int c = a++ +1; System.out.println(a);//667 System.out.println(c);//667
int a = 666; int c = ++a +1; System.out.println(a);//667 System.out.println(c);//668
+ 运算符在字符串运算中表示拼接的意思,只要有一个字符串,不管左右都是拼接的意思;
仍复合运算从左往右的规格;
如:System.out.println(1+"C"); //1C
System.out.println("5 + 5 = " + (5 + 5));//5+5=10 System.out.println("5 + 5 = " + 5 + 5);//5+5=55 System.out.println(5 + 5 + "5 + 5 = " );//105+5=
如:System.out.println(c *= a);//c = c * a
比较运算符的结果为 true 或者 false
另,“==”为是否相等
逻辑运算符
“&&” 与
“||” 或
“!” 非
“&&”与“&”的关系,都是“与”运算符,但“&&”有短路效果,“&”无短路效果,即若“&&”左边为false,则直接运算结束得false;而若“&”左边为false,仍需计算右边,才得结果false。所以“&&”比“&”效率高。“||”与“|”的关系类似。
三元运算符
格式: 数据类型 变量名 = 布尔运算表达式 ? 结果1 : 结果2
布尔运算结果为true,三元运算整体结果为结果1 ,结果1赋值给变量;布尔运算结果为false,三元运算整体结果为结果2 ,结果2赋值给变量
拓展知识:
“+=”隐藏了强制类型转换
如:short s = 1;
s = s + 1 ; //报错,右边为int 型
s += 1; //不报错。
可通过XJad 反编译软件查看
byte b = 1; byte b2 = 2; byte b3 = b1 + b2; //报错,类型不一致
byte b = 1; byte b2 = 2; byte b3 = 1 + 2; //不报错,类型不一致。编译器有常量优化机制