运算符
-
Java 语言支持如下运算符:
-
算数运算符:+,-,*,/,%,++,–
-
package operator; public class Demo01 { public static void main(String[] args) { //二元运算符 int a = 10; int b = 20; int c = 10; int d = 10; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b); } }
-
package operator; public class Demo04 { public static void main(String[] args) { //++ -- 自增,自检 一元运算符 int a = 3; int b = a++;//先执行后运算 int c = ++a;//先运算后执行 System.out.println(a);//5 System.out.println(b);//3 System.out.println(c);//5 //幂运算 2^3 2*2*2 =8 很多运算会使用工具类来操做 double pow = Math.pow(2,3); System.out.println(pow); } }
-
-
赋值运算符:=
-
package operator; public class Demo02 { public static void main(String[] args) { long a = 123123132132123L; int b = 123; short c = 10; byte d = 8; /* 如果其中有Long类型更进行操做,结果过就为Long类型 如果其中有Double,结果则为Double类型 */ System.out.println(a + b + c + d);//Long System.out.println(b + c + d);//Int System.out.println(c + d);//Int } }
-
-
关系运算符:>,<,>=,<=,==,!=,instanceof
-
package operator; public class Demo03 { public static void main(String[] args) { //关系运算符返回的结果: 正确,错误 布尔值 int a = 10; int b = 20; int c = 21; //取余,模运算 System.out.println(c%a); System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); } }
-
-
逻辑运算符:&&,||,!
-
package operator; //逻辑运算符 public class Demo05 { public static void main(String[] args) { // 与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为真 System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,结果才为真 System.out.println("!(a && b):"+!(a&&b));//逻辑非运算:两个变量都为假,结果才为真 //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); System.out.println(c); } }
-
-
位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
-
package operator; public class Demo06 { public static void main(String[] args) { /* A = 0011 1100 B = 0000 1101 ------------------------------------------------- A&B = 0000 1100 与:两个都为1才为1 A|B = 0011 1101 或:两个都是0才为0 A^B = 0011 0001 异或:两个相同则为0,否则为1 ~B = 1111 0010 取反 2*8怎么运算最快? 2*2*2*2 效率极高!!! 直接跟底层打交道 左移:<< *2 右移:>> /2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); } }
-
-
条件运算符?:
-
package operator; //三元运算符 public class Demo08 { public static void main(String[] args) { // x ? y : z //如果x==true,则结果为y,否则结果为z int score = 80; String type = score < 60 ? "不及格" : "及格"; System.out.println(type); } }
-
-
扩展赋值运算符:+=,-=,*=,/=
-
package operator; public class Demo07 { public static void main(String[] args) { int a = 10; int b = 20; a+=b; //a = a+b a-=b; //a = a-b System.out.println(a); //字符连接符 + , 有一方出现了String类型就会把另一个操作数转化为String再进行连接 System.out.println(""+a+b); System.out.println(a+b+""); } }
-
-
-
运算符的优先级
1.[] ()
2.++ – ~ ! (数据类型)
3.* / %
4.+ -
5.<< >> >>>
6.< > <= >=
7.== !=
8.&
9.^
10.|
11.&&
12.||
13.?:
14.= *= /= %= += -= <<= >>= >>>= &= ^= |=