您的位置:首页 > 编程语言 > Java开发

Java基础:Java运算符

2011-03-08 09:13 330 查看
提示:如果你有足够的精力,请记住运算符的优先级!

1. 算术运算符
 +  -  *  /  %(求余/求模运算符)  ++  --

 

 ++ -- 稍微有点麻烦,有个好办法:自己写个Demo测试一下,就可以搞定!

 
2. 关系运算符
 >  <  ==  !=  >=  <=

 
3. 逻辑运算符
 &  |  ^  !  &&  || 

 

 <1> &  |  ^ 既可以对逻辑表达时进行操作,也可以对一般数据类型进行操作

 
int a = 1;//0x0001
int b = 2;//0x0002
System.out.println("对一般数据类型进行操作");
System.out.println(a&b);//0,按位求余
System.out.println(a^b);//3,按位异或
System.out.println(a|b);//3,按位求或

System.out.println("对逻辑表达时进行操作");
System.out.println(a == 1 & b == 2);//true
System.out.println(a == 1 | b == 2);//true
/*两者不一致时才为真*/
System.out.println(a == 1 ^ b == 2);//true+true = false
System.out.println(a == 12 ^ b == 2);//false+true = true
//false+true = true
System.out.println(a == 1 ^ b == 22);
//true+true = false
System.out.println(a == 12 ^ b == 22);
  

 <2> &&  || ! 只可以对逻辑表达时进行操作,不可以对一般数据类型进行操作

  
//均会报错
System.out.println(a&&b);
System.out.println(a||b);
System.out.println(!a);
  

<3> 区别

      &:普通与 &&:短路与|:普通或 ||:短路或

@1. 当在(a && b)条件下,当a为false时,不用再判断b了,表达式已经为false;

@2. 当在(a || b)条件下,当a为true时,不用再判断b了,表达式已经为true;

@3. 而 &  和 |  则需要两边都进行判断 才行 !

4. 位运算符
 &  |  ^  ~  >>  <<  >>>

 

 &  |  ^  ~  按位取与、取或、异或、取反

 >>  位右移,高位是1,右移n位就在左边补n个1;高位是0,右移n位就在左边补n个0  

 >>> 无符号位右移,不管高位是1还是0,均在左边补0

 <<  位左移,右边补0

 
5. 赋值运算符
 =

 
6. 扩展运算符,即复合运算符
   +=  -=  *=  /=  %=  等等

 

 
int a = 7;
//报错:可能损失精度,因为int遇见float会先自动转换为float再与
//2.6相运算,但是计算结果是float不能自动转换为int故报错
a = a + 2.6
//使用复合运算符,就相当于强制转换
a += 2.6;  <=>  a = (int)(a + 2.6); = 9//强制转化会损失精度 --> 省去小数点
所以,a += 2.6; //不与 a = a + 2.6等效
  

  
7. 字符串连接符
 +

 

 在使用System.out.println语句打印时,会默认调用toString()方法,所以只要字符串连接符+两边的操作数有一个是字符串,

 系统就会自动的将另一个操作数转换为string,然后再打印输出。

 
 
int a = 1;
int b = 2;
System.out.println("a+b= " + a + b);//a+b= 12
System.out.println("a+b= " + (a + b));//a+b= 3,括号的优先
//级最大,所以先计算a + b的值然后再将其转换为string输出。
以下类推。

System.out.println("------------------------------");

int i = 12;
char ch = 24;
System.out.println("i+ch = " + i + ch);//i+ch = 12一个字
//符(24对应的字符)
System.out.println("i+ch = " + (i + ch));//i+ch = 36
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: