1.运算符:
算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三目运算符
2.算术运算符:+(加) -(减) *(乘) /(除) %(取余) ++(自增) --(自减) +(连字符,字符串相加) 面试题:
自增++:在前,先执行++的操作,在执行++后的操作;在后:在执行++后的操作,在执行++操作。
自减–:规则同上。
3.赋值运算符
= , +=, -=, *=, /=, %=;
=为基本的赋值运算符,其他的为扩展的赋值运算符练习题(重要)
第一个:short s=1, s = s+1;
第二个:short s=1, s+=1;(隐含自动转型)上面两个代码有没有问题,如果有,那里有问题
?
第一个会出错,s是short类型,参与运算时,转为int 类型。
解决方案:1 int s=s+1;2 s=(short)(s+1);
4.关系运算符
(大于) <(小于) ==(等于) >=(大于等于) <=(小于等于) !=(不等于)
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=”。
5.逻辑运算符
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
面试题:
“&”和“&&”的区别:
& 1当作算术运算符2逻辑运算符(与)当前一个条件为false时,后面的判断继续执行。
&& 逻辑运算符(短路与) 当前一个条件为false时,发生短路,后面的判断不在执行。
“|”和“||”的区别
| 1当作算术运算符2逻辑运算符(或)当前一个条件为TRUE时,后面的判断继续执行。
|| 逻辑运算符(短路或) 当前一个条件为TRUE时,发生短路,后面的判断不在执行。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
6位运算符
运算符 运算 范例
<< 左移 3 << 2 = 12 --> 322=12 >>右移 3 >> 1 = 1 --> 3/2=1
>>>无符号右移 3 >>> 1 = 1 --> 3/2=1
& 与运算 6 & 3 = 2
| 或运算 6 | 3 = 7
^ 异或运算 6 ^ 3 = 5
~ 反码 ~6 = -7
位运算符的细节:
<< 空位补0,被移除的高位丢弃。
>>被移位的二进制最高位是0,右移后,空缺位补0;
最高位是1,最高位补1。
>>>被移位二进制最高位无论是0或者是1,空缺位都用0补。
& 任何二进制位和0进行&运算,结果是0;
和1进行&运算结果是原值。
| 任何二进制位和0进行 | 运算,结果是原值;
和1进行 | 运算结果是1。
^ 任何相同二进制位进行 ^ 运算,结果是0;
不相同二进制位 ^ 运算结果是1。
面试题:
1如何最快的方式得到8?左移3位
7三目运算
符
格式
(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。