运算符
-
算术运算符:+ - * / % ++ --
package operator;
?
public class Demo03 {
public static void main(String[] args) {
//++ -- 自增,自减 一元运算符
?
int a = 3;
?
int b = a++;//执行完这段代码后,先给b赋值,再自增
//隐藏了a = a + 1;这一句代码
?
System.out.println(a);//4
?
//隐藏了a = a + 1;这一句代码
int c = ++a;//执行完这段代码前,先自增,再给c赋值
?
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
?
?
//幂运算 2^3 2*2*2 = 8
double pow = Math.pow(2,3);
System.out.println(pow);//8.0
}
}
? -
赋值运算符:=
-
关系运算符:> < >= <= == != instanceof(面向对象时会讲)
//关系运算符返回的结果:正确,错误 布尔值
?
int a = 10;
int b = 20;
int c = 21;
?
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
System.out.println(c%a);//1(取余,也叫模运算) -
逻辑运算符:&& || !
//与 或 非
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);
System.out.println(d);//false
System.out.println(c);//5,不会输出6,(c<4已经是错误的,短路,不会往下执行)//二元运算符
//ctrl + d:复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);//30
System.out.println(a-b);//-10
System.out.println(a*b);//200
System.out.println(a/(double)b);//0.5long a = 12521512255L;
int b = 234;
short c = 10;
byte d = 1;
System.out.println(a+b+c+d);//12521512500 long类型
System.out.println(b+c+d);//245 int类型
System.out.println(c+d);//11 int类型
不重要的
-
位运算符:& | ^ ~ >> << >>>(了解!!!)
/*
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 1000 8
0001 0000 16
*/
System.out.println(2<<3);//16 -
条件运算符:?:(偷懒用的)
//x ? y : z
//如果x为真,则结果为y,否则结果为z
?
int score = 20;
String type = score < 60 ?"不及格":"及格";//必须掌握
//也可以用if语句
System.out.println(type); -
int a = 10;
int b = 20;
?
//a += b;//a = a + b;
//a -= b;//a = a - b;
System.out.println(a);
?
//字符串连接符 +
System.out.println(a+b);//30
System.out.println(""+a+b);//1020,字符串在前面,会拼接
System.out.println(a+b+"");//30,字符串在后面,会运算
优先级