&&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断。
&和&&都可以用作逻辑与的运算符,&&为短路与,&不是短路与。另外&可以做为整数的位运算符
例1:对于if(str != null&& !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。
例 2 : If(x==33&++y>0) y 会增长, if(x==33 &&++y>0) 不会增长
||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
注意当他们进行运算的时候,&表示两个数先都变成二进制,然后两个数都是1才为1,其他为0
| 表示两个数只要有一个为1,就是1,其他都是0
~是一个单目运算符,用来对一个二进制位按位取反,即0变成1,1变成0,比如~00001111=11110000。
!是逻辑非运算符,我们还是直接来看他的意思,!a的意思是:若a为真,则!为假,若a为假则!a为真。