java语言支持如下运算符:
算术运算符: + , - ,* , / , % , ++ , --
赋值运算符:=
关系运算符:>,=,<=,==,!= instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~,>>,<>>(了解!!!)
条件运算符:?:
扩展赋值运算符:+=,-=,*=,/=
/*
* 运算符
* ++ 在前 先+1 后等于
* ++ 在后 先等于 后+1
* */
//++ -- 自增 ,自减 一元运算符
int a=3;
int b = a++; //4
int c= ++a;
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂的运算 2^3 2*2*2=8 很多运算, 我们会使用一些工具类操作!
double pow=Math.pow(2,3);
System.out.println(pow);
// 与(and) 或(or) 非(取反)
boolean a11=true;
boolean b11=false;
System.out.println("a && b:"+(a11&&b11)); //逻辑与运算:两个变量都为真,结果才为 真
System.out.println("a || b:"+(a11 || b11)); //逻辑或运算:两个变量只要有一个为真 结果才为 真
System.out.println(" !(a && b):"+!(a11&&b11)); //如果是真的 则变为假 如果是假的变为真的
//短路运算 : 如果在&& 之前错了 那么就不会走&&后面的了
int c22=5;
boolean dc=(c<4) &&(c++<4);
System.out.println(c22);
System.out.println(dc);
/*
* 位运算
* A=0011 1100
* B=0000 1101
* ----------------
* A&B =0000 1100 A和B 判断 如果上面的A的第一位和下面B的第一位 都为1 那么这个才为1 如果只有1个为1 那么就输出0 以此判断后面输出什么
* A/B =0011 1101 A和B 判断 如果上面的A的第一位和下面B的第一位 只要一个为1 那么就输出1 以此判断后面输出什么
* A^B =0011 0001 A和B 判断 如果上面的A的第一位和下面B的第一位 相同输出0 不相同输出1 以此判断后面输出什么
* ~B =1111 0010 把B所有的数字 反过来输出
*
* 2*8= 16
* 位运算 效率极高!!!
* << *2
* >> /2
*
* 0000 0000 0
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
* 0000 1000 8
* 0001 0000 16
* */
//拓展赋值运算符
int cc=10;
int dd=20;
cc+=dd; //cc=cc+dd
cc-=dd; //cc=cc-dd
System.out.println(cc);
//字符串 + string 面试题:
System.out.println(""+cc+dd); // 1020 ""字符串在int类型变量的前面 两个字符串拼接
System.out.println(cc+dd+""); //30 ""字符串在int类型变量的后面 两个字符串进行运算
//三元运算符:
// x ? y : z
// 如果 x==true ,则结果为y ,否则 结果为z
int score= 50;
String js =score < 60 ?"不及格" :"及格";
System.out.println(js);
// score=50 先进行判断 如果 score < 60 这个条件成立 输出 : 前面的
// 如果 score < 60 这个条件不成立 输出 : 后面的