基本介绍
- 算术运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:<,>,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:? :
- 扩展赋值运算符:+=,-=,*=,/=
实例展示
public class Operator {
//base.Operator 运算符
public static void main(String[] args) {
//二元运算符
//Ctrl+D:复制当前行到下一行
int a=10;
int b=20;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//返回值:0
System.out.println(a/(double)b);//返回值:0.5
//强制转换
long c=1234566788995L;
int d=123;
short e=10;
byte f=8;
System.out.println(c+d+e+f);//返回值为:Long类型
System.out.println(d+e+f);//返回值为:Int类型
System.out.println(e+f);//返回值为:Int类型
System.out.println((double)e+f);//返回值为:double类型
//关系运算符返回值的结果:正确or错误 值为布尔值
int x=10;
int y=20;
int z=21;
System.out.println(x>y);//flase
System.out.println(x<y);//true
System.out.println(x==y);//flase
System.out.println(x!=y);//true
//取余,模运算
System.out.println(z%x);//意义等于:21/10=2...1 结果为:1
//++ -- 自增,自减 一元运算符
int n=3;
int m=n++;//执行完这行代码后,先给m赋值,然后在自增
//n=n+1
System.out.println(n);//返回值:4
//n=n+1
int h=++n;//执行完这行代码后,先自增,然后在给h赋值
System.out.println(n);//返回值:5
System.out.println(m);//返回值:3
System.out.println(h);//返回值:5
//幂运算 数学中的表示:2^3=2*2*2=8 很多运算,我们会使用一些根据类来操作!
double pow = Math.pow(2, 3);
System.out.println(pow);//返回值:8
//逻辑运算符
//与:&& 或:|| 非(取反):!
boolean t=true;
boolean r=false;
System.out.println("a&&b"+(t&&r));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a||b"+(t||r));//逻辑或运算:两个变量有一个为真,则结果为真;两个都为假结果才是假
System.out.println("!(a&&b)"+(!(t&&r)));//逻辑非运算:如果是真则变为假,如果是假则变为真
//短路运算 &&
int q=5;
boolean w=(q<4)&&(q++<4);//前面(q<4)为假,所以(q++<4)不执行,被直接短路
System.out.println(w);//返回值:false
System.out.println(q);//返回值:5,未进行q++运算
/*位运算
A=0011 1100
B=0000 1101
--------------------
A&B=0000 1100 //位对位,两个都是1,则输出1,其他输出0
A|B=0011 1101 //位对位,两个都是0,则输出0,其他输出1
A^B=0011 0001 //位对位,两个相同,则输出0,不相同输出1
~B=1111 0010 //位对位,取反
面试题: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 0101 5
0000 0110 6
0000 0111 7
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);//2^3=16
//字符串连接符:+ (面试题:下面两个输出有啥区别)
int i=10;
int j=20;
System.out.println(""+i+j);//输出结果:1020; 理由:字符串后面的也会以字符串的形式输出
System.out.println(i+j+"");//输出结果:30; 理由:字符串前面的不会以字符串的形式输出
//三元运算符:? :
//x?y:Z 如果x==true,则结果为y,否则结果为z
int score=50;
String type=score<60?"及格":"不及格";
System.out.println(type);//输出结果为:不及格
}
}