运算符
算数运算符(二元运算符):
**+,-,*,/ ** 加减乘除
% 模运算(取余运算)
++ ,– :自增,自减
b = a++; //先将a赋值给b,之后在进行a=a+1;
b = ++a; //先操作a=a+1,之后再赋值给b
赋值运算符: =
关系运算符: < , > , <= , >= , == , !=
instanceof 用来判断对象是属于哪个类的
对象 instanceof 类 --> 返回boolean类型的
逻辑运算符
&& 与
|| 或
! 非
boolean a = true;
boolean b = false;
a&&b = false; //逻辑与运算: 两个变量都为真,结果才为真
a||b = true; //逻辑或运算:两个变量有一个为真,结果为真
!a = false; //如果为真(假),则就变成假(真)
位运算符 :& , | , ^ , ~ , >> , << , >>>
在二进制上操作,和底层打交道,效率极高
===============================================
A = 0011 1100
B = 0000 1101
A & B = 0000 1100 //AB逐位比较,都为1,才得1
A | B = 0011 1101 //AB逐位比较,都为0,才得0
A ^ B = 0011 0001 //相同为0,不同为1
~ B = 1111 0010
================================================
<< 左移:相当与 *2
<< 右移:相当于 /2
================================================
-
思考题:2 * 8 = ? 怎样运算最快?
等价于2 * 2 * 2 *2 ,乘了3个2;
答案 2<<3
条件运算符(三元运算符): ? :
x ? y : z //如果 x == true ,结果为 y ,否则为 z
字符串连接符
//字符串连接符 +
//(在 + 两侧只要有一方出现了 String 类型,他就会把另外的操作数转换为 String 类型 ,并且连接)
System.out.println(a+b); //相加 int型
System.out.println(""+a+b); //连接 String型
System.out.println(a+b+""); //String型
//这个运算也分先后(这个只是将(a+b)的结果转化为了字符串)