运算符
Java语言支持如下运算符:优先级()
1. 算数运算符:+ - * / % ++ --
public class Demo01 {
public static void main(String[] args) {
// 二元运算符
// Ctrl + D :复制当前到下一行
int a = 10;
int b = 20;
int c = 30;
int d = 40;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b); //0.5
}
}
public class Demo04 {
public static void main(String[] args) {
// ++ -- 自增,自减 一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,再自增
// a++ a=a+1 ,隐藏了一行代码,,没有执行
System.out.println(a);
// ++a a=a+1
int c = ++a; //执行完这行代码前,先自增,再给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作!
double pow = Math.pow(3,3);
System.out.println(pow);
}
}
2. 赋值运算符 =
public class Demo02 {
public static void main(String[] args) {
long a = 121212122332313L;
int b = 123;
short c = 10;
byte d = 8;
//有Long结果就一定是Long,,如果有double结果就一定是double
System.out.println(a+b+c+d); //Long
System.out.println(b+c+d); //Int
System.out.println(c+d); //Int
System.out.println((double) c+d);
}
}
3. 关系运算符:> < >= <= == != instanceof
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回结果:正确,错误 布尔值
//if
int a = 10;
int b = 20;
int c = 21;
// 取余,模运算
System.out.println(c%a); // c/a 21/10=2.....1
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
4. 逻辑运算符:&& || !
public class Demo05 {
public static void main(String[] args) {
// 与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a && b)); //逻辑与运算:两个变量都为真,结果才是true
System.out.println("a || b:"+(a || b)); //逻辑或运算:两个变量有一个为真,结果就是true
System.out.println("!(a && b):"+!(a&&b));//如果是真,则变成假,如果是假则变成真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<10); //c<4已经是假的了,短路了,,所以不走++,,c还是5
System.out.println(d);
System.out.println(c);
}
}
5. 位运算符:
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A/B = 0011 1101
A^B = 0011 0001
~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);
}
}
6. 条件运算符 ? :
public class Demo07 {
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);
System.out.println(a+b);
//字符串连接符 + ,String ,,面试题
System.out.println(""+a+b);
System.out.println(a+b+"我爱你");
}
}
//三元运算符
public class Demo08 {
public static void main(String[] args) {
// X ? y : z
//如果 X==true,则结果为 y ,否则结果为 Z
int score = 80;
String type = score < 60?"不及格":"及格";
//if
System.out.println(type);
}
}
7. 扩展赋值运算符:+= -= *= /=