操作符
基础操作
package operator;
/**
* @ClassName Demo01
* @Description TODO
* @Author Administrator
* @Date 2021/1/3 16:50
* @Version 1.0
**/
public class Demo01 {
public static void main(String[] args) {
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((double) a/b);
System.out.println(a/b); // 0 没有进行类型强制转换,只保留小数点之前的证书部分
}
}
package operator;
import java.sql.SQLOutput;
/**
* @ClassName Demo02
* @Description TODO
* @Author Administrator
* @Date 2021/1/4 14:12
* @Version 1.0
**/
public class Demo02 {
public static void main(String[] args) {
long a = 1212312312312321312L;
int b = 2343;
short c = 212;
byte d = 12;
char e = 'a';
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//Int
System.out.println(c+d);//Int
System.out.println(e);
System.out.println((int)e);
System.out.println(c+e);//Int
//int、short、byte、char 中任意1种类型在运算符时,先全部转化为int类型,得到int类型的结果
//System.out.println((String)(c+e));
//System.out.println((String)(c+d));
}
}
关系运算符
package operator;
/**
* @ClassName Demo03
* @Description TODO
* @Author Administrator
* @Date 2021/1/4 14:56
* @Version 1.0
**/
public class Demo03 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 21;
//关系运算符,返回的结果是, 正确 true 错误 false 布尔值
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
//取余,模运算
System.out.println(c%b);// 21/20=1.......1
}
}
一元运算符
package operator;
/**
* @ClassName Demo04
* @Description TODO
* @Author Administrator
* @Date 2021/1/4 15:11
* @Version 1.0
**/
public class Demo04 {
public static void main(String[] args) {
// 自增++ 自减-- 一元运算符
int a = 5;
int b = a++; //先将a的值赋值到b, a再加1。 此时的a=6,而b=5
int c = ++a;//先将a加1,再将a的值赋值到c。此时的a=7, 而c=7
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作
double pow = Math.pow(2, 3); //Alt+Enter
System.out.println(pow);
}
}
逻辑运算符
package operator;
/**
* @ClassName Demo05
* @Description TODO
* @Author Administrator
* @Date 2021/1/4 15:46
* @Version 1.0
**/
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++<4);
System.out.println(d);
System.out.println(c);
}
}
位运算
package operator;
/**
* @ClassName Demo06
* @Description TODO
* @Author Administrator
* @Date 2021/1/4 15:58
* @Version 1.0
**/
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
0010 0000 32
0100 0000 64
*/
System.out.println(2<<3);
System.out.println(64>>3);
}
}
连接符
package operator;
import javax.sound.midi.Soundbank;
/**
* @ClassName Demo07
* @Description TODO
* @Author Administrator
* @Date 2021/1/4 16:17
* @Version 1.0
**/
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);
//字符串连接符 + ,String
System.out.println(""+a+b);
System.out.println(a+b+"");
}
}
三元运算符
package operator;
/**
* @ClassName Demo08
* @Description TODO
* @Author Administrator
* @Date 2021/1/4 16:54
* @Version 1.0
**/
public class Demo08 {
public static void main(String[] args) {
//x ? y : z
//如果 x == true,则结果为y,否则结果为z
int score = 80;
String type = score < 60? "不及格": "及格";
System.out.println(type);
}
}
参考来源1:https://www.bilibili.com/video/BV12J41137hu?p=30
参考来源2:https://www.cnblogs.com/shuaiding/p/11124974.html