运算符
二元运算符
public class 二元运算符 {
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 );//30
System.out.println( a - b );//-10
System.out.println( a * b );//200
System.out.println( a / (double)b );//0.5
}
}
public class 运算符1 {
public static void main(String[] args) {
long a = 1221313131312L;
int b = 123;
short c = 10;
byte d = 8;
float e = 12.5f;
System.out.println(a+b+c+d);//Long 1221313131453
System.out.println(b+c+d);//Int 141
System.out.println(c+d);//Int 18
System.out.println((double)c+d);//Double 18.0
System.out.println(d+e);//Float 20.5
}
}
关系运算符
public class 关系运算符 {
public static void main(String[] args) {
//关系运算符返回的结果:正确,错误 布尔值
//if
int a = 10;
int b = 20;
int c = 21;
//取余 ,模运算
System.out.println(c%a);//1
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
}
}
一元运算符
public class 一元运算符2 {
public static void main(String[] args) {
// 一元运算符:++ -- 自增 自减
int a = 3;
int b = a++;//执行完这行代码后,先给b赋值,a在自增
//a++ a = a+1
System.out.println(b);//3
System.out.println(a);//4
int c = ++a;//执行完这行代码前,先自增,再给c赋值
//
System.out.println(a);//5
System.out.println(c);//5
// ++在前先自增,再运算
// ++在后先运算,在自增
//幂运算 2^3 2*2*2 = 8
//很多运算,我们会使用工具类来操作
double pow = Math.pow(2, 3);
System.out.println(pow);//8.0
}
}
逻辑运算符
//逻辑运算符
public class 逻辑运算符 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b :" +(a&&b));//false 逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b :" +(a||b));//true 逻辑或运算:两个变量有一个为真,则结果才为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
}
}
位运算
//位运算
public class 位运算 {
public static void main(String[] args){
/*
A = 0011 1100
B = 0000 1101
----------------------------------------------
A与B A & B = 0000 1100 如果两个都为1,才为1,否则就是0
A或B A | B = 0011 1101 如果对应位都为0,结果为0,否则为1
A异或B A ^ B = 0011 0001 如果这两个位置相同,则为0,不相同则为1
非A及B(取反) ~B = 1111 0010 就是相反0000 1101
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);//16
}
}
扩展赋值运算符
//扩展赋值运算符
public class 扩展赋值运算符 {
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);//10
System.out.println(a + b);//30
//字符串连接符 + 加号前面String类型 “” ,后面的都转换位String类型然后在连接
System.out.println("" + a + b);//1020
System.out.println("" + (a + b));//30
//面试题
System.out.println(a + b + "");//30 字符串String “” 在后面,前面的正常运算
}
}
三元运算符
//三元运算符
public class 三元运算符 {
public static void main(String[] args) {
//x ? y : z;
//如果x == true,则结果为y,否则结果为z
//必须掌握
int score = 80;
int score1 = 50;
String type = score < 60 ? "不及格" : "及格";
String s = score1 < 60 ? "不及格" : "及格";
//if
System.out.println(type);//及格
System.out.println(s);//不及格
}
}