java运算符中的小秘密

如图是java中常见的运算符,运算符中优先级越小优先级越高,那让我们一起去挖掘一下它们的小秘密

java运算符中的小秘密

1、[]

java运算符中的小秘密

第一句是声明一个数组。

第二句是属性获取,获取数组中对应下标中的内容。

   java运算符中的小秘密

我们可以尝试打印一下

java运算符中的小秘密

第一句需要注意一下,其中[的意思是数组类型,I表示的数组里面装的是int

类型,剩下的表示数组对应的地址。


2、 .

.运算符虽然个头很小,但是功能却不小,一般用来调用方法

java运算符中的小秘密

图中调用的是length方法


3、()

()主要用来调用函数,这里不做过多介绍


4、~

按位取反符,见名知意,是取对应相同位置二进制的相反数,0的相反数是1,1的相反数是0

java运算符中的小秘密

如图,11的按位取反后的二进制数是 1111 0111对应的值是-12

5、|


按位或符,按对应二进制位置进行或运算

java运算符中的小秘密

如图 11与13的按位或是15 


6、&

按位与符,按对应二进制位置进行与运算

java运算符中的小秘密

如图是11和13的按位与,对应的值是9


7、^

按位异或符,也是对应位置异或操作,异或是不一样的或,一样的是'0'

java运算符中的小秘密

如图这是11和13的按位异或,对应的值是5


8、>>

右移运算符,比如数字11右移两位就是 11>>2

java运算符中的小秘密

这里要注意一点右移后要补的不一定是0,补充的是符号位。如果是负数,补充1。

上图我们可以发下一个有趣的关系

java运算符中的小秘密

java运算符中的小秘密

右移也可以用如图公式计算


9、<<

左移也如右移一样运算,不过特别注意的是

java运算符中的小秘密

这里涉及到了隐式转化的问题,byte类型的11左移四位后不再是byte类型,转化成了更高阶的类型来接纳,最前面的不再是符号位,因此结果是176。


10、>>>

无符号右移符,这里的用法参考>>符,区别在于右边符号位统统补0

java运算符中的小秘密

这里输出的是2147483647


11、++ ——

++ ——有两种用法,前置和后置,这里我们以++为例

java运算符中的小秘密

结果是10,这里要注意的是int b = a++操作,分解是先 tmp=a;a++;b=tmp;这里的tmp是一个临时变量。所以打印出来的b是10。

java运算符中的小秘密

不同的是如果是++a的话,结果是11,具体步骤是,a=10;++a;b=a;

java运算符中的小秘密

输出结果是11

——也是同样的操作


11、+=

混合运算符,我们这里只举例+=。a+=1相当于a=a+1; 

12、? :

条件运算符,以啊a,b举例

a>b?a:b

这句代码的意思是a>b的值为真返回a ,如果为假返回b。


13、%

取模符,意思是取余数,这里我们举几个例子

java运算符中的小秘密

结果依次是1,-1,-1,1;

这里我们以-10%3举例

java运算符中的小秘密


14、&&

短路与符,这里我们直接举例

java运算符中的小秘密

这里面有三个函数,fun1,fun2,fun3分别是

java运算符中的小秘密

输出的结果是

java运算符中的小秘密

可以看出&&当前面运算为假后,后面的&&没有执行,我们总结短路与是:一个假的

后面都不执行,结果为假


15、||

短路或符,与短路与类似,这里我们不过举例。短路或的结论是:一个真后面的都不

执行,结果为真


以上是我简单总结的java中的运算符。

(新手上路,如有错误请多指教,谢谢!)