算术运算符
- 符号:+,-,*,/,%,++,— —
- 意义:
- +:正号,加法,字符串连接符。
- /:整数相除,结果只能是整数。(只要操作中任意一个数据变为浮点数,就可以得到小数)
- %:取余
- ++,— —:
- ++ 其实相当于把数据+1
- 单独使用:在数据前后,结果一致。
-
参与操作使用:a.若在数据前,数据先++/— —,在操作b.若在数据后,数据先操作,再++/— —
赋值运算符
- 符号:=,+=,—=,*=,/=,%=
- a += 10;------把左边和右边的和赋值给左边。
- 注意事项:a = a + 3;与a += 3;结果是等价的,理解上不是等价的。因为+=内含了强制类型转换功能。
- 重点注意:赋值运算符的左边必须是一个变量。
关系运算符
逻辑运算符
符号:&,|,!,^,&&,||
特点:用于连接布尔型表达式的运算。eg:Java中不可以写3<X<6,应该写成 X >3 & X < 6.
-
总结:
- &:与 有假则假
- | :或 有真则真
- !:非 非false则true,非true则false
- ^ :异或 相同为假,不同为真
- &&和&的区别是:如果左边有false了,右边将不再执行。
- | | 和 | 的区别是:如果左边有true了,右边将不再执行。
位运算符(理解就可以)
是针对二进制数据的运算
-
符号:
- &:按位与
- | :按位或
- ^:按位异或
- ~:按位取反
- <<:左移 左边溢出位舍弃,右边空位补0.
:右移 左边空位:负数补1,正数补0.
* >>>:无符号右移 左边空位补0(不考虑正负)
-
面试题:
a.请用最高的效率写出2乘以8这个式子
2*8-----2<<3
b.请把两个数据交换
eg:int a = 10; int b = 20;
结果:a = 20; b = 10;
方案一(开发用)int temp = a;
a = b;
b=temp;
System.out.println(a+"-----"+b);
方案二:使用位^运算符
特点:一个数据对同一个数据位^运算两次,数据不变。
a = a ^ b;
b = a ^ b;//b=a^b^b = a
a = a ^ b;//a=a^b^a = b
三元运算符
格式:(条件表达式)?表达式1:表达式2;
注意:条件表达式说明这里将来结果只能是true或false的表达式
-
执行顺序:
- 如果条件表达式为true,就把表达式1作为结果,
- 如果条件表达式为false,就把表达式2作为结果。
-
作业:在三个数据在找出最大值。
int a = 20;
int b = 40;
int c = 30;
方式一:
int d = a>b?a:b;
int e = d>c?d:c;
方式二:int f = (a>b)?(a>c?a:c):(b>c?b:c);
转义字符
定义:
通过“\”来转变后面字母或者符号的含义:
- \n换行(LF),将当前位置移到下一行开头
- \b退格(BS),将当前位置移到前一列
- \r回车(CR),将当前位置移到本行开头
- \t水平制表(HT)(跳到下一个TAB位置)
- \代表一个反斜线字符“\”
- '代表一个单引号字符
- ''代表一个双引号字符