3.1 运算符与表达式

1.算术运算符(+,-,*,/,%,++,--)  

1)运算符
+,-
优先级4级
*、/、%
优先级3级
i++(i--)
在使用i之后,使i的值加1
++i(--i)
在使用i之前,使i的值加1
例:
x=5
y=++x;//y=6,x=6
x=5
y=x++;//y=5,x=6
2)算数混合运算的精度
    a)按运算符两边操作元的最高精度保留结果的精度
    例:
5/2 //结果是2
5.0/2 //或5.0f/2 //结果是2.5
    b)char型数据和整型数据运算结果的精度是int型数据的精度
例:
byte x=7;
//'B'+x的结果是int型,因此char ch='B'+x;不正确
char ch=(char)('B'+x);//正确

2.关系运算符

结果是boolean型,表达式成立时true,否则是false
运算符 优先级
>
6
<
6
>=
6
<=
6
==
7
!=
7

3.逻辑运算符(&&、||、!)

操作元必须是boolean型数据
运算符
优先级
含义
&&
11
逻辑与
||
12
逻辑或
!
2
逻辑非

4.赋值运算符(=)

优先级14级
注意: 不要与==混淆

5.位运算符

  • 按位与(&)
  • 按位或(|)
  • 按位非(~
  • 按位异或(^)
例:
public class Example3_1{
    public static void main(String args[]){
        char a1='十',a2='点',a3='进',a4='功';
        char serect='8';
        a1=(char)(a1^serect);
        a2=(char)(a2^serect);
        a3=(char)(a3^serect);
        a4=(char)(a4^serect);
        System.out.println("密文:"+a1+a2+a3+a4);
        a1=(char)(a1^serect);
        a2=(char)(a2^serect);
        a3=(char)(a3^serect);
        a4=(char)(a4^serect);
        System.out.println("原文:"+a1+a2+a3+a4);
    }
}
 
位运算符也可以是逻辑型数据
位运算与逻辑运算的不同
例:
public class Example3_2{
    public static void main(String args[]){
        int x,y=10;
        if( ( (x=0)==0 )||( (y=20)==20 ) ){
            System.out.println("现在y的值是:"+y);
        }
        int a,b=10;
        if( ( (a=0)==0)|( (b=20)==20 ) )//需要运算两边公式的再或运算(‘|’)结果 
        {
            System.out.println("现在b的值是:"+b);
        }
    }
}
y:10
b:20
 
位运算符也可以是操作字符数据,但运算结果int型数据,例:
char x='a',y='b';
//x|y,x&y,x^y,~x的结果是int型

6.instanceof运算符

双目运算,左边的操作元是一个对象,右边是一个类;当左边的对象是右边的类创建的对象时,该运算的结果是true,否则是false。
String aa = null;
System.out.println((aa instanceof String)); //false
aa = new String();
System.out.println((aa instanceof String)); //true

7.运算符综述

运算符优先级表:
优先级 运算符 结合性
1 () [] . , ; 从左到右
2 ! +(正)  -(负) ~ ++  --  从右向左
3  * / % 从左向右
4 +(加) -(减) 从左向右
5   <<   >>   >>> 从左向右
6
 <    <=    >    >=   instanceof
从左向右
7
  ==   !=
从左向右
8
 &(按位与)
从左向右
9
 ^
从左向右
10
 |
从左向右
11
 &&
从左向右
12
 ||
从左向右
13
 ?: 
从右向左
14 
 =  +=  -=  *=  /=  %=  &=  |=  ^=   ~=   <<=  >>=    >>>=
从右向左

你可能感兴趣的:(java,运算符,表达式)