(1)算术运算符

+

-

*

/

%

 1 class  ModOperator
 2 {
 3     public static void main(String[] args) 
 4     {
 5         double d1 = 5.32;
 6         double d2 = 3.2;
 7         System.out.println(d1%d2);
 8         System.out.println(d1%0);//输出NaN
 9         System.out.println(0%d1);//输出0.0
10         System.out.println(0%2);//输出0
11         System.out.println(1%2);// 输出1
12     }
13 }

++

 1 class IncrementOperator
 2  
 3 {
 4     public static void main(String[] args) 
 5     {
 6         int x=6,y;
 7         y=x++ + 1; 
 8         System.out.println("y="+y+","+"x="+x);//y=7 x=7
 9         y=1 + ++x;
10         System.out.println("y="+y+","+"x="+x);//y=9 x=8
11     }
12 }

--

(2)赋值运算符

(3)位运算符

  • & 按位与
  • | 按位或
  • ~ 按位非
  • ^按位异或
  • <<左位移运算符
  • >> 右位移运算符
 1 /*
 2 << 左移  3<<2=12  0011--左移-->1100   3左移n位等于 3乘以2的n次幂 
 3 >> 右移  右移n位等于除以2的n次幂 
 4 >>> 无符号右移
 5 >> 和 >>>区别
 6 >>最高位补什么由原来的最高位值而定,如果最高位是0,右移后,用0补。如果是1,则用1补。
 7 >>> 无论最高位是什么 移位后都用0补
 8 & 与 
 9 | 或
10 ^ 异或 不同为真,相同为假。 7^4^4=7; 一个数异或同一个数两次,结果还是那个数。
11 ~ 反码
12 */
13 class  BitOperation
14 {
15     public static void main(String[] args) 
16     {
17         int n =3,m=1;
18         n=n^m;
19         m=n^m;
20         n=n^m;
21         System.out.println("n="+n+"m="+m);
22     }
23 }

 

(4)比较运算符

(5)逻辑运算符

  • && 与运算,如果第一个为flase不计算第二个数
  • & 与 不短路
  • ||  或运算 如果第一个数为true 不计算第二个数
  • | 或 不短路
  • ^ 异或

(6)三目运算符 ?:

1         String str =5>3?"5大于3":"5不大于3";
2         System.out.println(str);//5大于3

 

 (7)运算符的优先级

 

优先级   操作符   含义        关联性  用法 
----------------------------------------------------------------
1        [ ]      数组下标      左    array_name[expr] 
         .        成员选择      左    object.member 
         ( )      方法参数      左    method_name(expr_list) 
         ( )      实例构造      左    class_name(expr_list) 
         ++       后缀自增      左    lvalue++ 
         --       后缀自减      左    lvalue-- 

2        ++       前缀自增      右    ++rvalue 
         --       前缀自减      右    --lvalue 
         ~        按位取反      右    ~expr 
         !        逻辑非        右    !expr 
         +        一元加        右    +expr 
         -        一元减        右    -expr 

3        ( )      强制转换      右    (type)expr 
         new      对象实例化    右    new type() 
                                      new type(expr_list) 
                                      new type[expr] 

4        *        乘            左    expr * expr 
         /        除            左    expr / expr 
         %        求余          左    expr % expr 

5        +        加            左    expr + expr 
         -        减            左    expr - expr 
         +        字符串连接    左    strExpr + strExpr 

6        >>       有符号右移    左    expr >> distance 
         >>>      无符号右移    左    expr >>> distance 

7        <        小于          左    expr < expr 
         <=       小于等于      左    expr <= expr 
         >        大于          左    expr > expr 
         >=       大于等于      左    expr >= expr 
      instanceof  类型比较      左    ref instanceof refType 
         ==       等于          左    expr == expr 
         !=       不等于        左    expr != expr 

8        &        整数按位与    左    integralExpr & integralExpr 
         &        布尔与        左    booleanExpr & booleanExpr 

9        ^        整数按位异或  左    integralExpr ^ integralExpr 
         ^        布尔异或      左    booleanExpr ^ booleanExpr 

10       |        整数按位或    左    integralExpr | integralExpr 
         |        布尔或        左    booleanExpr | booleanExpr 

11       &&       逻辑与        左    booleanExpr && booleanExpr 

12       ||       逻辑或        左    booleanExpr || booleanExpr 

13       ? :      条件运算      右    booleanExpr ? expr : expr 

14       =        赋值          右    lvalue = expr 
         *=       乘赋值        右    lvalue *= expr 
         /=       除赋值        右    lvalue /= expr 
         %=       模赋值        右    lvalue %= expr 
         +=       加赋值        右    lvalue += expr 
         +=    字符串连接赋值   右    lvalue += expr 
         -=       减赋值        右    lvalue -= expr 
         <<=      左移赋值      右    lvalue <<= expr 
         >>=   有符号右移赋值   右    lvalue >>= expr 
         >>>=  无符号右移赋值   右    lvalue >>>= expr 
         &=    整数按位与赋值   右    lvalue &= expr 
         &=       布尔与赋值    右    lvalue &= expr 
         |=    整数按位或赋值   右    lvalue |= expr 
         |=       布尔或赋值    右    lvalue |= expr 
         ^=   整数按位异或赋值  右    lvalue ^= expr 
         ^=     布尔异或赋值    右    lvalue ^= expr 

 

 


 

posted on 2012-06-03 10:56  Lincon Ma  阅读(155)  评论(0编辑  收藏  举报