版权声明:本文为博主原创文章,转载请声明出处并添加原文链接。 https://blog.csdn.net/azsx02/article/details/78402768
二元操作符类型提升问题
- 整数运算
- 如果两个操作数有一个为long,则结果也为long
- 没有long时,结果为int,即使操作数全为byte,short,结果也是int
- 浮点运算
- 两个操作数有一个为double,则结果为double
- 只有两个操作数全是float,结果才是float
一元操作符
int a = 3;
int b = a++; //先赋值,后自增
int c = ++a; //先自增,再赋值
布尔逻辑表达符
- 逻辑与:&&
- 逻辑或: ||
- 逻辑非:!
逻辑与和逻辑或采用短路的方式,从左向右执行,如果确定值,则不再计算下去。
boolean = 1>2&&2>(3/0); // &&没有抛异常,没有执行3/0
位运算符
- ~ 取反
- & 按位与
- | 按位或
- ^ 按位异或
- << 左移 移动一位相当于乘2
- 右移<< 相当于除2
字符串连接符
System.out.println(3+"4"); //输出34
三目条件运算符
s = x?y:z
x为Boolean类型表达式,如x为true,则s = y,赋值s = z
int a2 = 2;
int b2 = 3;
String str = "";
str = (a2>b2)?"a2":"b2";
System.out.println(str);