Java基础语法5-运算符
运算符
- 算数运算符
+、-、*、/、%、++、--
- 赋值运算符
=
- 关系运算符
>、<、>=、<=、==、!=、instanceof
- 逻辑运算符
&&、||、!
- 位运算符
&、|、^、~、>>、<<、>>>
了解Java中的byte
- 条件运算符
?:
- 扩展运算符
+=、-=、*=、/=
运算符的优先级,优先使用()
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左到右 |
2 | !、+、-、~、++、-- | 从右到左 |
3 | *、/、% | 从左到右 |
4 | +、- | 从左到右 |
5 | <<、>>、>>> | 从左到右 |
6 | <、<=、>、>=、instanceof | 从左到右 |
7 | !==、!= | 从左到右 |
8 | & | 从左到右 |
9 | ^ | 从左到右 |
10 | | | 从左到右 |
11 | && | 从左到右 |
12 | || | 从左到右 |
13 | ?: | 从右到做 |
14 | =、+=、-=、*=、/=、&=、 | =、^=、~=、<<=、>>=、>>>= |
package operator;
public class Demo01 {
public static void main(String[] args) {
// 二元运算符
int a = 10;
int b = 20;
System.out.println(a+b); // 30
System.out.println(a-b); // -10
System.out.println(a*b); // 200
System.out.println(a/(double)b); // 0.5
// 有long计算即为long,有double计算即为double,否则都为int
long h = 2311434132L;
int i = 30;
char j = 'A';
byte k = 28;
System.out.println(h+i+j+k); // 2311434255
System.out.println(i+j+k); // 123
System.out.println(j+k); // 93
// 关系运算符,与if搭配
int aa = 10;
int bb = 20;
System.out.println(aa>bb); // false
System.out.println(aa<bb); // true
System.out.println(aa==bb); // false
System.out.println(aa!=bb); // true
// 取余,也叫模运算
System.out.println(aa%bb); // 10
// ++ -- 自增,自减,一元运算符
int x = 3;
int y = x++; // 先把3赋值给y,然后自加1,此时x=4
int z = ++x; // 先自加1,此时x=5,然后把5复制给z
System.out.println(x); // 5
System.out.println(y); // 3
System.out.println(z); // 5
// 幂运算 2^3 2*2*2=8,使用工具类Math来计算
double pow = Math.pow(2, 8);
System.out.println(pow); // 256.0
// 逻辑运算符
boolean b1 = true;
boolean b2 = false;
System.out.println(b1&& b2); // false
System.out.println(b1||b2); // true
System.out.println(!b1); // false
// 短路运算,如果&&左边已是false,则右侧不会执行,如果||左边已是true,右侧不会执行
int m = 5;
boolean kk = (m<4) && (m++<4);
System.out.println(kk); // false
System.out.println(m); // 5
int p = 7;
boolean gg = (p>3)||(p++>3);
System.out.println(gg); // true
System.out.println(p); // 7
// 如何最快的计算2的3次方.左移乘2,右移除2
int mr = 2 << 3;
System.out.println(mr); // 16
// 扩展运算符
int a1 = 10;
int a2 = 12;
a1 += a2;
System.out.println(a1); // 22
a1 -= a2;
System.out.println(a1); // 10
// 字符串连接符 +
System.out.println(""+a1+a2); // 1012
System.out.println(a1+a2+""); // 22
System.out.println(a1+""+a2); // 1012
// 三元运算符
// x ? y : z,如果x==true,则结果为y,否则为z
boolean xl = 30 < 12;
int bbx = xl ? 12 : 15;
System.out.println(bbx); // 15
}
}