运算符
- 算术运算符:+,-,*,/,++,–
- 赋值运算符=
- 关系运算符:>,<,>=,<=,==,!=instanceof
- 逻辑运算符:&&,||,!
- 条件运算符:? :
- 扩展运算符: +=,-=,*=,/=
逻辑运算符
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
// 与(and) 或(or) 非(取反)
boolean a=true;
boolean b=false;
System.out.println(a && b);//false
System.out.println(a || b);//true
System.out.println(!(a &&b ));true
// 短路运算
int c=5;
boolean d=(c<4)&&(c++<4);//前面为false,直接返回false,后面的不执行
System.out.println(b);
System.out.println(c);//5
}
}
位运算
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=16 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
}
}
字符串连接符
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);//30
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30,第一个+就是加号,第二个是字符串连接符
}
}
三元运算符
//三元运算符
public class Demo08 {
public static void main(String[] args) {
//x ? y: z
//如果x==true,则结果为y,否则结果为z
int score1 =90;
int score2=50;
String type1= score1 <60 ?"不及格":"及格";
String type2= score2 <60 ?"不及格":"及格";
System.out.println(type1);//及格
System.out.println(type2);//不及格
}
}