Java基础语法—运算符
算术运算符+,-,*,/,%,++,--
package opretor;
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//ctrl + D 复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
System.out.println(a+b);//30
System.out.println(a-b);//-10
System.out.println(a*b);//200
System.out.println(b/a);//2
System.out.println(c%a);//5
System.out.println(a/b);//0
System.out.println(a/(double)b);//0.5
}
}
运算中有long类型,则结果为long类型,否则结果为int;同理,运算中有double类型,则结果为double类型,否则结果为float
public class Demo02 {
public static void main(String[] args) {
long a = 1237867823641L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d); //long
System.out.println(b+c+d); //int
System.out.println(c+d); //int
double e = 0.0001;
float f = 0.1F;
float g = 0.2F;
System.out.println(e+f);//double
System.out.println(g+f);//float
}
}
++ -- 自增,自减,一元运算符
int b = i++; 执行完这段代码后,先给b赋值,再自增
int b = ++i; 执行完这段代码后,先自增,再给b赋值
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增,自减,一元运算符
int a = 1;
int b = 6;
System.out.println(a);//1
System.out.println(a++);//1
System.out.println(a);//2
System.out.println(++a);//3
System.out.println(a);//3
System.out.println("=====================");
System.out.println(b);//6
System.out.println(b---5);//1
System.out.println(b);//5
System.out.println(--b+1);//5
//幂运算 2^3 2*2*2 = 8
//很多运算,我们会使用一些工具类来操作
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}
赋值运算符=
关系运算符>,<,>=,<=,==,!=,instanceof
关系运算符返回的结果:正确 错误 布尔值
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确 错误 布尔值
int a = 10;
int b = 20;
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
}
}
逻辑运算符 &&,||,!
逻辑与运算(&&):两个变量都为真,结果才为true
逻辑或运算(||):两个变量有一个为真,结果为true
逻辑非运算(!):如果为真,则为false,如果为假,则为true
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
// 与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a&&b:"+(a&&b));//a&&b:false
System.out.println("a||b:"+(a||b));//a||b:true
System.out.println("!(a&&b):"+!(a&&b));//!(a&&b):true
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5 说明没执行c++
}
}
位运算符 &,|,^(取反),~,>>(右移),<<(左移),>>>
重要知识点:<< 即为 乘以2;>> 即为 除以2
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 相同为0,不同为1
~B = 1111 0010
面试题:2*8怎么算最快
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
2*8 = 16
<< *2
>> /2
2*2*2*2 = 2<<3
*/
System.out.println(2<<3);//16
System.out.println(7<<2);//28
}
}
条件运算符 ? :
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);//及格
}
}
扩展运算符 +=,-=,*=,/=
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;//a = a+b
System.out.println(a);//30
a-=b;//a = a-b
System.out.println(a);//10
//字符串连接符 +运算符两侧,只要有一方出现String,会把另一侧都转换成String,再进行联结。
System.out.println(a+b);
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
System.out.println(a+b+""+a+b);//301020
//小结:如果""在前边,则后边不进行运算;如果""在后边,则先运算,再连接。
}
}
扩展
运算符优先级 ()最优先,最好就是把想先执行的放在()里
浙公网安备 33010602011771号