运算符
Java语言支持以下运算符:优先级()>乘除>加减
-
算术运算符:+,-,*,/,%(模运算:取余数),++,--
-
赋值运算符 :=
-
关系运算符:>, <, >=, <= ,== ,!= instanceof
-
逻辑运算符:&&,||, !
-
位运算符:&,|,^, ~ , >> , << , >>>(了解)
-
条件运算符 ? :
-
扩展赋值运算符:+= ,-=,*= ,/=
算术运算符
//二元运算符 int a = 10; int b = 20; int c = 35; int d = 40; System.out.println(a+b);//30 System.out.println(a-b);//-10 System.out.println(a*b);//200 System.out.println(a/b);//0 结果是小数需要转下类型 System.out.println(a/(double)b);//0.5 long a = 1111123213123123L; int b = 123; short c = 12; byte d = 8; double e = 33.3; System.out.println(a+b+c+d);//类型:Long 有Long类型结果类型就为Long,没有就是Int类型 System.out.println(b+c+d);//类型:Int System.out.println(b+c+d);//类型:Int System.out.println(b+c+d+e);//类型:Double 有Double类型就是Double // ++a a++的区别 //++ -- 自增 自减 一元运算符 int a = 3; int b = a++;//执行这行代码后,先给b赋值,再自增 //a++ a = a+1 System.out.println(b);//3 System.out.println(a);//4 int c = ++a;//执行这行代码前,先自增,再给b赋值 System.out.println(c);//5 System.out.println(a);//5 //幂运算 2^3 = 2*2*2 = 8 很多运算,一般会使用一些工具类来操作 double pow = Math.pow(2, 3); System.out.println(pow);//8.0
逻辑运算符
// 与 and 或 or 非(取反) boolean a = true; boolean b = false; //逻辑与运算:两个变量都为真,结果才为true System.out.println("a&&b: "+(a&&b));//a&&b: false //逻辑或运算:两个变量有一个为真,结果才为true System.out.println("a||b: "+(a||b));//a||b: true //如果是假结果是真,真则是假 System.out.println("!(a&&b): "+!(a&&b));//!(a&&b): true //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); //c<4 5<4明显是false System.out.println(d);//false //当条件出现结果后,后面的运算不执行,所以c还是5 System.out.println(c);//5
位运算符
/* A = 0011 1100 B = 0000 1101 ----------------------------- 上下位数比较 A&B = 0000 1100 都为1填1 A|B = 0011 1101 有1填1 A^B = 0011 0001 相同为0不同为1 ~B = 1111 0010 相同为1不同为0 2*8 =16 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);//16
赋值运算符
int a = 10; int b = 20; a+=b; //a = a+b a-=b; //a = a-b //字符串连接符 + ,String System.out.println("—"+a+b);//—1020 如果字符在左边就是拼接 System.out.println(a+b+"-");//30- 在右边先运算再拼接 System.out.println("—"+(a+b));//—30 可以加括号
条件运算符 ? :
//三元运算符 //x ? y : z //如果x==true,结果为y,否则结果为z int score = 50; String type = score < 60 ? "不及格":"及格"; System.out.println(type);//不及格 String type1 = score < 50 ? "不及格":"及格"; System.out.println(type1);//及格