Java基础07:运算符
- 算数运算符:+ 、—、*、/、%、++、–
- 赋值运算符:=
- 关系运算符:>、<、>= <= == != instanceof
- 逻辑运算符:&&、||、!
- 位运算符:&、|、^、~、>>、>>>
- 条件运算符 ? :
- 扩展赋值运算符: +=、-=、*=、/=
自增自减运算符
a++: 先赋值、再自增
++a: 先自增、再赋值
幂运算
package Operator;
public class Demo03 {
public static void main(String[] args) {
//幂运算 很多运算,我们会使用一些工具类来操作!
double pow = Math.pow(3,2);
System.out.println(pow); // 运行结果:9.0
}
}
逻辑运算符、位运算符
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a && b)); //结果:false 逻辑与:全真为真
System.out.println("a || b:"+(a || b)); //结果:true 逻辑或:一真则真
System.out.println("!(a && b):"+!(a && b)); //结果:true 非:是真则假,是假才真
短路运算 &&
//短路运算&&
int c = 5;
boolean d = (c < 4) && (c++<4); //5肯定不小于4,所以第一项就错了,因此双目与运算&&后面的就不执行了,所以执行结果为false
System.out.println(d);
System.out.println(c);
位运算
//位运算
/*
* A = 0011 1100
* B = 0000 1101
*
* A&B = 0000 1100 有0则0,全1才1
* A|B = 0011 1101 全0才0,有1则1
* A^B = 0011 0001 相同为0,不同为1
* ~B = 1111 0000 取反运算,与之相反
*
* 计算机如何计算 2*8?
* 通过拆分成2*2*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);
字符串连接
//字符串连接
int a = 10;
int b = 20;
面试题:
System.out.println(a + b);
System.out.println("" + a+b); //第一项是一个空字符串,也就是String类型的,则默认与后面的进行字符串拼接
System.out.println(a+b + ""); //如果空字符串放在后面,则a与b会执行相加运算
运行结果:
30
1020
30
三目运算符
//三目运算符
// X ? Y :Z
//如果X为true,则结果为Y,否则结果为Z
int score = 80;
String type = score<60 ? "不及格" : "及格";
System.out.println(type);
运行结果:
及格