技术演绎之 [ java ] java 运算符

作者:zk
e_mail:zk_mails@163.com
qq:312239613
博客首页:http://blog.csdn.net/zk0521(转载请注明出处)
博客导航目录:http://blog.csdn.net/zk0521/article/details/46472813
注:如有问题请联系作者,作者会及时改正博客

Java 语言支持如下运算符:

算术运算符:  +,-,*(乘法),/ (整除), %(取余) ,++,--
赋值运算符 = 
关系运算符( ===》布尔类型  true 或 false ):  >,<,>= (大于或等于),<= (小于或等于),==(等等),!=(不等于) , instanceof 
逻辑运算符( ===》布尔类型  true 或 false ): &  (逻辑与),| (逻辑或),^ (逻辑异或),! (逻辑非), && (短路与),||(短路或)
位运算符( ===》二进制的逻辑运算   1--true  0--false):  &(位逻辑与),|(位逻辑或),^(位逻辑异或),~(位取反 了解) , >>(有符号的右移),<<(有符号的左移),>>>(无符号的右移) (了解!!!)

逻辑运算符 和 位运算符 的区别在于     左右两边的值  左右两边的值是 truefalse那么是逻辑运算      例如  3>4 &  4<6    false &  true
                         左右两边的值 数字的话   那么是位运算            例如   4 & 3           0000-0100 &  0000-0011 


条件运算符 (三目运算)  ?: 
扩展赋值运算符:   +=,  -=,  *=, /= 
        优先级使用 () 提升即可



注意:
1、%(取余) 
  a、   当一个数a  模与 一个比a大的数 b    结果是这个数本身   ===》  a%b    3 % 4  = 3 ;
  b、    当一个数a  模与 这个数本身    结果是0    ===》  a%b    3 % 3 = 0 ;
  c、   当一个数 去模与 另一个数的时候   其结果的符号  和 左边数的符号一致


2、
  ++   代表自加1
   --    代表自减1


  int a = 2;   a = a+1 ;    a++;




a、当++在变量的后面出现的时候 
int  a = 3;
int b = a++;    
System.out.println( "a  = " + a); // 4
System.out.println( "b  = " + b); // 3
===》先将 a 的值赋值给 b , 然后 a在自加1
          b、当++在变量的前面出现的时候 
int c = 5;
int d = ++c;    
 
System.out.println(" c = " + c); // 6
System.out.println(" d = " + d); // 6
===》先将 c自加1  ,然后再将 c的值 赋值给d


3、逻辑运算符
 a 、&  -----》当左右两边  同时为 true 的时候  结果才为 true , 左右两边 只要有一个 为 false 结果为 false
System.out.println( 3>2 &  4>3); // true  &  true  ==>true
System.out.println( 3>2 &  4<3); // true &  false  ==>false
System.out.println( 3<2 &  4>3); // false &  true  ==>false
System.out.println( 3<2 &  4<3); // false & false  ==>false 


 b、|  ---》 当左右两边  同时为 false 的时候  结果才为 false, 左右两边 只要有一个 为 true 结果为 true
System.out.println( 3>2 |  4>3); // true  &  true  ==> true
System.out.println( 3>2 |  4<3); // true &  false  ==> true
System.out.println( 3<2 |  4>3); // false &  true  ==> true
System.out.println( 3<2 |  4<3); // false & false  ==> false
c、^ ----》当左右两边 相同的时候 结果 false   ,左右两边 不同的时候  结果 true
System.out.println( 3>2 ^  4>3); // true  &  true  ==>  false
System.out.println( 3>2 ^  4<3); // true &  false  ==>  true
System.out.println( 3<2 ^  4>3); // false &  true  ==>  true
System.out.println( 3<2 ^  4<3); // false & false  ==>  false
d、!---》  !true ---》 false     !false ===> true
System.out.println(!(3<2) ) ; //false ===>true
System.out.println(!(3>2) ) ; //true ==>false


e、 && (短路与), ||(短路或)
       && (短路与)===》当左边为 true 的时候 才会去判断右边结果
 当左边为 false 的时候  右边不做判断   直接输出结果为false
System.out.println( 3>2 &&  4>3); // true  &&  true  ==>  true
System.out.println( 3>2 &&  4<3); // true &&  false  ==>  false
System.out.println( 3<2 &&  4>3); // false &&  true  ==>  false
System.out.println( 3<2 &&  4<3); // false && false  ==>  false


|| (短路或)====》当左边为 true的时候  右边不做判断  直接输出结果为ture
   当左边为 false的时候  才去判断右边的结果
System.out.println( 3>2 ||  4>3); // true  ||  true  ==>  true
System.out.println( 3>2 ||  4<3); // true ||  false  ==>  true
System.out.println( 3<2 ||  4>3); // false ||  true  ==>  true
System.out.println( 3<2 ||  4<3); // false || false  ==>  false


4、位运算
     a、^   位异或    一个数 异或另外一个数 两次  其结果是自身 
     b、  >> 右移    其实就是 除以 2的xx次幂         12  >> 3    12 / 2 (3)    12 / 8  = 1   当移动的时候  最高为 是原来最高为的数字
<< 左移   其实就是 乘以  2的xx次幂         3 << 4       3 * 2(4)    3 * 16 = 48


5、三目运算   ? :
逻辑表达式    ?  表达式1   :  表达式2 ;


当逻辑表达式 结果为 true 的话 会返回 表达式1
当逻辑表达式 结果为 false 的话 会返回 表达式2
    int a =  3>4 ? 1 : 0   


6、扩展赋值运算符







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值