基本运算
运算符
Java语言支持如下运算符:(优先级,()优先级较高)
-
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==(Java中等于用两个等号表示),!=instanceof(不等于)
-
逻辑运算符:&&(与),||(或),!(非)
-
位运算符:&,|,^(异或),~(非),>>,<<,>>>(了解!!!)
-
条件运算符:?:
-
扩展赋值运算符:+=,-=,*=,/=
idea中快捷键Ctrl+D:复制当前行到下一行
运算中有一个类型为long或double,则结果也为相应类型,否则为int类型(不管运算中有没有int)
自增自减运算符
++ 自增 -- 自减
例:
int a = 3;
int b = a++;
int c = ++a;
a,b,c输出结果为3,3,5
上面的代码相当于
int a = 3;
int b = a++;执行完这行代码后,先给b赋值,再自增
//a++ a=a+1
//a++ a=a+1
int c = ++a;执行完这行代码前,先自增,再给c赋值
a,b,c输出结果为3,3,5
幂运算
2^3相当于 2 * 2 * 2 = 8,java中不允许这么写,很多运算,可以使用工具类来操作
输入Math.pow(2,3);
点击一下会自动变成
double pow = Math.pow(2,3);
逻辑运算
&&(与运算),全1出1,有0出0
||(或运算) ,有1出1,全0出0
!(非运算),有1出0,有0出1
短路运算
如果在与运算中,第一个数为false,那么此条代码根本不会去执行后面的操作,这样的现象叫短路
int c = 5;
boolean d = (c<4)&&(c++<4);
输出c,d结果为5,fals,表明第2段不成立,没有运行,所以C++为5,如果运行了c++应为6
位运算符
&(与),|(或),^(异或,两个值相同为0,不同为1),~(非)
>>(右移,相当于/2),<<(左移,相当于*2)
位运算的效率极高
条件运算符
?: 三元运算符
x?y:z
int score = 50;
String type = score <60 ? "不及格" :"及格";//如果score小于60,那么输出不及格,否则输出及格
System.out.println(type);
扩展赋值运算符
+=,-=,*=,/=
a+=b,相当于a=a+b
a-=b,相当于a=a-b
字符串连接符
只要+任意一侧有String类型,那么他会将另一个操作数改为String类型在进行连接
int a = 10;
int b = 20;
System.out.println(""+a+b);
//输出结果为1020
面试题
请问(""+a+b)与(a+b+"")有什么区别?
int a = 10;
int b = 20;
System.out.println(""+a+b);
System.out.println(a+b+"");字符串在后面,前面的会运算
//输出结果为1020,30