学习记录3基本运算符
作者:互联网
运算符operator
- 算术运算符:+,-,*,/,%(求余数,叫做模运算),++(自增),--(自减)
- 赋值运算符:=,a = b(叫做把b赋值给a)
- 关系运算符:>,<,>=,<=,==(等于),!=(不等于),instanceof
- 逻辑运算符:&&(逻辑与),||(逻辑或),!(逻辑非)
- 位 运 算 符:&,I,^,~,>>,<<,>>>
- 条件(三元)运算符:?,:
- 扩展赋值运算符:+=,-=,*=,/=
int a = 3;
int b = a++;//这行代码意为,先给b赋值,再自增,让b等于3,再让a加1
int c = ++a;//这行代码意为,先自增,再给c赋值,先让a加1,再把a加1的结果赋值给c
幂运算:2^3,222
Math.pow(2,3);
很多运算需要用到运算包借助Math类
关系运算
boolean a = true;
boolean b = false;
System.out.println("a&&b:"+a&&b);//逻辑与,两个都为真,结果为真
System.out.println("a||b:"+a||b);//逻辑或,一个都为真,结果为真
System.out.println("!(a&&b):"+!(a&&b));//逻辑非,与原始结果相反
结果
a&&b:false
a||b:true
!(a&&b):true
短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);//从结果就可以看出,第二行代码后面的c++并没有执行
结果
false
5
位运算
A = 0011 1100
B = 0000 1101
A&B = 0000 1100//按位与,上下比较,都为0则为0,都为1则为1,否则为0
A|B = 0011 1101//按位或,上下比较,都为0则为0,一个为1则为1,两个为1则为1
A^B = 0011 0001//按位异或,上下比较,相同为0,即都为0取0,都为1取0,不同为1
~B = 1111 0010//取反
面试题
2*8怎么运算最快
2*8 = 2*2*2*2
<<左移(这是相较于二进制位的)
>>
System.out.println(2<<3);//结果为16
原因
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 3
0000 1000 8
0001 0000 16
每移动一位数字就增大了,而且是每移动一位就乘2.
这样的计算方法比前面的两种都要简单,这种简单是相较于计算机的运算机制与方法而言的,是对计算机来说简单,而不是对人,当然根据数据结构的知识,我们知道在大规模数据面前,这样的方法是可以提高效率的。
扩展赋值运算符:+=,-=,*=,/=
int a = 10;
int b = 20;
a += b;//a = a + b
System.out.println(a);//结果为30
字符串连接符 +,
System.out.println(""+a+b);
System.out.println(a+b+"");
结果为
1020
30
在加号两侧只要有一方出现字符串类型(String),则会将其他数据转化为字符型进行连接,注意,若字符串在前则后侧的不再进行计算,字符串在后侧,则要先进行计算,将结果作为字符类型,与后面的字符串连接
三元运算符
//x ? y : z
//如果x==true,则结果为y,否则为z
int score = 80;
String type = score < 60 ? "不及格":"及格";
System.out.println(type);//结果为及格
标签:学习,记录,int,System,运算符,&&,println,out 来源: https://www.cnblogs.com/hezhipeng/p/16676269.html