self-study java notes --operator
1.赋值和赋值拓展运算符
int a=3;
int b=4;
a*=a+b;
System.out.println(a);
System.out.println("a="+a+"\nb="+b);
先算a+b
2.关系运算符
关系运算符的结果为布尔类型,只有true/false
char a='a';
char a2='b';
System.out.println(a<a2);
System.out.println(0+a);
System.out.println((int)a2);
3.逻辑运算符
1.逻辑与、或、非、异或
&、|、!、^
两个数都需要考虑进去
2、短路与、短路或
&&、||
若第一个为T或F,则后面不看,有时候效率要高
***Ctrl+7快捷键为单行注释 ***
public static void main(String args[]){
boolean b = 1<2 && 2<(3/0)
System.out.println(b);
}
3/0会报错,但是因为短路与只考虑第一个,所以并不会执行到后面的语句。
4.位运算符(重要)
取反、按位与、按位或、按位异或、左移、右移
~、&、|、^、<<、>>
左移相当于乘2、右移相当于除2(这样运算较快)
5.字符串连接符
字符串不是基本数据类型,是对象。
System.out.println(3+"4");
6.条件运算符
x ? y : z
x为布尔类型表达式,若x为true输出表达式y的值,若x为false则输出表达式y的值。
int a=-10;
System.out.println(a>0 ? 1 : (a == 0 ? 0 : -1);
等价于
int a=-10;
if(a>0)
{
System.out.println(1);
}
else if (a==0)
{
System.out.println(0);
}
else
{
System.out.println(-1);
}
也可以分开写
int score=80;
String type = score>0 ? 1 : (score==0 ? 0 : -1);
System.out.println(type);
7.运算符优先级
1.算数运算符>关系运算符> 逻辑运算符>赋值运算符
2.逻辑非>逻辑与>逻辑或
比如 a||B&&c 的计算顺序为 a||(b&&c)
*最好使用小括号来组织 *