基本运算符
优先级:一元运算符以及括号内的表达式<–二元运算符<–位运算符<–赋值运算符和扩展赋值运算符;
一元运算符以及括号内的表达式<–二元运算符<–条件运算符;
一元运算符以及括号内的表达式<–二元运算符<–关系运算符<–逻辑运算符;
-
二元运算符:“*”号表示乘法,“/"表示除法。
-
一元运算符:”++“表示在自身加1,”–“表示在自身减1。“%”表示取余,如:13%5==3。
-
关系运算符:“!=”表示不等于,“>=”表示大于等于,“<=”表示小于等于。
-
逻辑运算符:”&&“表示与,”||”表示或,“!”表示非,遵循短路运算
-
位运算符:&,|,^,~分别表示位运算的与,或,异或,非(取反);>>,<<,>>>分别表示位运算的有符号右移,左移,无符号右移(有符号右移若为整数移完后最高位为0,若为负数移位后最高位为1。无符号右移无论正负最高位都为0。
-
三元运算符——条件运算符“?:”。例如:若x=10,表达式x<8?y=1:y=2;的值为y=2;即判别式结果为真则取“:”号前面的式子,否则取“:”号后面的式子。
-
扩展赋值运算符:例如:a+=b等价于a=a+b。-=,*=,/=与+=类似。
今天学到:一个快捷键Ctrl+D:复制当前行到下一行;
字符串连接符”+“,String
int n=10;
int m=20
System.out.println(""+n+m);//输出1020
System.out.println(n+m+"");//输出30
//"“符号在前,则它会把+号连接的数据变成String类型,”"符号在后不会改变前面+号连接的数据;
package operator;
public class yunsuanfu {
public static void main(String[] args) {
//二元运算符
//Ctrl+D:复制当前行到下一行
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
System.out.println("=====================");
long q=1221212L;
int w=123;
short e=32766; //short型的范围是-32768~32767
byte r=8;
double t=1.1;
System.out.println(q+w+e+r);//Long Long型和int、short、byte型运算会得到Long型
System.out.println(w+e+r);//Int
System.out.println(e+r);//Int short和byte型运算会得到int型
System.out.println(t+q);//Double 其他基本数据类型和Double型运算都会得到Double型
System.out.println("=====================");
//关系运算符返回的结果:用布尔值表示,true(正确),false(错误)
int h=10;
int k=23;
System.out.println(k%h);//3
System.out.println(k>h);//true
System.out.println(k<h);//false
System.out.println(k==h);//false
System.out.println(k!=h);//true
System.out.println("=====================");
//"++"自增,"--"自减,都是一元运算符
int u=3;
int i=u++;//i=3 执行完这行代码后,先给b赋值,再自增
//u=u+1
System.out.println(u);//u=4
//++u u=u+1 u=5
int p=++u;//p=5 执行完这行代码前,先自增,再给b赋值
System.out.println(u);//5
System.out.println(i);//3
System.out.println(p);//5
//“--”自减运算符与自增运算符是相对应的,用法类似
System.out.println("====================");
//幂运算 2^3==2*2*2==8 很多运算,我们会使用一些工具类来操作!
double pow=Math.pow(2,3);
System.out.println(pow);//pow==8.0
System.out.println("====================");
//逻辑运算符
//与(and) 或(or) 非(取反)
boolean s=true;
boolean f=false;
System.out.println("s&&f:"+(s&&f));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("s||f:"+(s||f));//逻辑或运算:两个变量有一个为真,则结果为真
System.out.println("!(s&&f):"+!(s&&f));//如果是真,则变为假,如果是假,则变为真
//逻辑运算遵守短路运算
int g=5;
boolean v=(g<4)&&(g++<4);//当它判断g<4是false,已经可以确定v==false,它就不会继续判断g++<4了,所以v不会加1了
System.out.println(v);
System.out.println(g);
System.out.println("====================");
//位运算符
//“&”位运算与,“|”位运算或,“^”位运算异或,“~”位运算非(取反)
/*
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 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);//输出16
System.out.println("=====================");
//扩展赋值运算符
int n=10;
int m=20;
n+=m;//n=30 n=n+m
n-=m;//n=10 n=n-m
System.out.println(n);
//字符串连接符”+“,String
System.out.println(""+n+m);//输出1020
System.out.println(n+m+"");//输出30
//""符号在前,则它会把+号连接的数据变成String类型,""符号在后不会改变前面+号连接的数据
System.out.println("======================");
//三元运算符
//x?y:z 表示如果x==true,则结果为y,否则为z
int score=50;
String type=score<60?"不及格":"及格";//必须掌握
System.out.println(type);//输出”不及格“
}
}
以上内容学习自java狂神说,网址:https://www.bilibili.com/video/BV12J41137hu?p=30&spm_id_from=pageDriver