算术运算符
算术运算符的注意问题:
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
例如:int x=3510;x=x/1000*1000; x的结果是3
“+”除字符串相加功能外,还能把非字符串转换成字符串 ,
例如:System.out.println("5+5="+5+5);//打印结果是5+5=55
转义字符:
通过 \ 来转变后面字母或者符号的含义
\n:换行
\b:退格
\r:按下回车键。windows系统中,回车符是由两个字符来表示\r\n
\t:制表符
赋值运算符
符号:
= , +=, -=, *=, /=, %=
+和+=的区别:
1: short s = 4;2: //两次运算,中间有一个提升过程,所以编译失败3: s = s + 5;4: //一次运算,只做赋值运算,内部有一个自动转换动作,所以编译通过5: s += 5;
比较运算符
结果是boolean型
逻辑运算符
1: //与(&),有一方为假,结果为假2: true & true = true;3: true & false = false;4: false & false = false;5: //或(|),有一方为真,结果为真6: true | true = true;7: true | false = true;8: false | false = false;9: //异或(^),两边相同,结果为假10: true ^ true = false;11: true ^ false = true;12: false ^ false = false;13: //非(!)14: !true = false;15: !false = true;
&与&&(短路)的区别:
&:无论左边是什么,右边都运算
&&:如果左边为假,右边不运算
|与||的(短路)的区别:
|:无论左边是什么,右边都运算
||:如果左边为真,右边不运算
位运算符
>>(右移)即为除以2的N次幂
<<(左移)即为乘以2的N次幂
小技巧:
交换两个数的值(不经过第三方变量)
1: //通过第三方变量2: int temp = n;3: n = m;4: m = temp;5: System.out.println("n = "+n+";m = "+m);6:7: //有可能超出范围,有局限性8: n = n + m;9: m = n - m;10: n = n - m;11: System.out.println("n = "+n+";m = "+m);12:13: //利用位运算符14: n = n ^ m;15: m = n ^ m;16: n = n ^ m;17: System.out.println("n = "+n+";m = "+m);
位运算在进制转换的应用
1: class OperatorDemo22: {3: //Hex码表4: static char[] list = {'0','1','2','3','4','5',5: '6','7','8','9','A',6: 'B','C','D','E','F'};7: public static void main(String[] args)8: {9: toHex(66660);10: }11: public static void toHex(int n)12: {13: //存在有效位,继续递归14: if(n > 0)15: //采用>>>而不是>>,因为>>对负数不安全16: toHex(n>>>4);17: //不存在有效位,则返回18: if(n == 0)19: return;20: //提取并打印最低四位21: System.out.print(list[n&0x0F]);22: }23: }
三元运算符
格式:
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。
来源:https://www.cnblogs.com/ShawnWithSmallEyes/p/3371352.html