Java中基础运算符和知识点记录
在阅读源码和其他的一些代码后,发现自己一些基础的运算符老是忘记(其实就是不懂。。。),所以专门写一篇博客记录一下,防止后续自己忘记。不多啰嗦,直接开始。
&
:与运算符,位运算符的一种,表示同一位都为1时,最后结果才为1。例子:4&6=4
(使用计算器将两个数都显示出来更加能够理解透彻)
|
:或运算符,位运算符的一种,表示同一位只要有一个为1,最后结果就为1。例子:4|6=6
。
~
:非运算符,位运算符的一种,该位为1时,结果为0,该位为0时,结果为1。例子:(byte)~4=0xFB
^
:异或运算符,位运算的一种,表示同一位相同时最后结果为0,同一位不同时最后结果为1.例子:4^6=2
>>
:右移运算符,位运算符的一种,表示将操作数向右移动,移出的全部丢弃,左边的看符号位进行补全,如何符号为位0,则补0,反之补1。例如:4>>2=2
<<
:左移运算符,运算符的一种,表示将操作数向左移动,移出位置全部丢弃,右边全部补0.例如:2<<2=4
>>>
:无符号右移运算符。位运算符的一种,表示将操作数向右移动,移出位置全部丢弃,左边全部补0.例如-4>>>2=1073741823
- 补充:计算机中存储负数不是简单的符号位加后面的数,存储的是负数的补码,这样是方便两个数相加。例如-4的补码是0xFFFFFFFC,所以负数的无符号右移会和预想中的不一致。可以自己写写代码看一下。
布尔表达式?表达式1:表达式2
:三目运算符。如果布尔表达式为true,执行表达式1,为false,执行表达式2。例如:a=1>2?1:2
,最后a=2.
&&
:逻辑与,逻辑运算符的一种。当两个条件都为true时,最后结果才为true,有一个不为true,最后结果就为false。
||
:逻辑或,逻辑运算符的一种。当两个条件任意一个为true时,最后结果就为true,只有两个条件都为false,最后结果才为false。
暂时就想到这些了,后续还会慢慢补充。
就这样吧,结束。