Java运算符


java中的运算符是用于执行运算(加,减,乘,除等)操作的符号。例如:+, - ,*,/等。Java中有许多类型的运算符,如下所示:

运算符优先级
一元++, --, +, -,~,!
乘、除法*, /,%
加、减法+, -
移位<<, >>, >>>
关系<, >, <=,>=, instanceof
相等==, !=
按位与&
按位异或^
按位或
逻辑与&&
逻辑或丨丨
三元? :
赋值=, +=, -=, *=, /=,%=,&=, ^=, <<=, >>=, >>>=,丨=

Java一元运算符示例:++ 和 — —

class OperatorExample{  
    public static void main(String args[]){  
        int x=10;  
        System.out.println(x++);//10 (11)  
        System.out.println(++x);//12  
        System.out.println(x--);//12 (11)  
        System.out.println(--x);//10  
    }
}

输出结果如下:

10
12
12
10
class OperatorExample {
    public static void main(String args[]) {
        int a = 10;
        int b = 10;
        System.out.println(a++ + ++a);// 10+12=22
        System.out.println(b++ + b++);// 10+11=21

    }
}

输出结果

22
21

Java一元运算符示例:〜 和 !

class OperatorExample {
    public static void main(String args[]) {
        int a = 10;
        int b = -10;
        boolean c = true;
        boolean d = false;
        System.out.println(~a);// -11 (minus of total positive value which
                                // starts from 0)
        System.out.println(~b);// 9 (positive of total minus, positive starts
                                // from 0)
    }
}

输出结果:(关于正负数运算的:负数在计算机中的运算

-11
9
false
true

java的移位运算实例:左移和右移

class OperatorExample {
    public static void main(String args[]) {
        System.out.println(10 << 2);// 10*2^2=10*4=40               左移1位相当于乘2
        System.out.println(10 << 3);// 10*2^3=10*8=80
        System.out.println(20 << 2);// 20*2^2=20*4=80
        System.out.println(15 << 4);// 15*2^4=15*16=240
        System.out.println(10 >> 2);// 10/2^2=10/4=2                 右移1位相当于除2
        System.out.println(20 >> 2);// 20/2^2=20/4=5
        System.out.println(20 >> 3);// 20/2^3=20/8=2
    }
}

输出结果

40
80
80
240

java的移位运算实例:>> 和 >>>

class OperatorExample {
    public static void main(String args[]) {
        // For positive number, >> and >>> works same
        System.out.println(20 >> 2);                                                     //符号位不位移,相当于符号位不变
        System.out.println(20 >>> 2);                                                  
        // For nagative number, >>> changes parity bit (MSB) to 0 
        System.out.println(-20 >> 2);
        System.out.println(-20 >>> 2);                                                //符号位要位移,符号位自动补零,结果变正数
    }
}

Java AND运算符示例:逻辑&&和位&

class OperatorExample {
    public static void main(String args[]) {
        int a = 10;
        int b = 5;
        int c = 20;

        System.out.println(a < b && a < c); // 第一个条件为false的时候,停止运算第二个条件,提高效率。
        System.out.println(a < b & a < c);   // 无论第一个条件true还是false,两个都需要执行。
        System.out.println(a < b && a++ < c);// false && true = false
        System.out.println(a);// 10 、
        System.out.println(a < b & a++ < c);// false && true = false
        System.out.println(a);// 11 
    }
}

输出结果:

false
10
false
11

Java 或运算符示例:逻辑|| 和按位 |

class OperatorExample {
    public static void main(String args[]) {
        int a = 10;
        int b = 5;
        int c = 20;
        System.out.println(a > b || a < c);// true || true = true         //一个为真,停止运算第二个条件,高效率
        System.out.println(a > b | a < c);// true | true = true          //无论第一个执行的如何,都需要执行完两个条件
        // || vs |
        System.out.println(a > b || a++ < c);// true || true = true
        System.out.println(a);// 10 because second condition is not checked
        System.out.println(a > b | a++ < c);// true | true = true
        System.out.println(a);// 11 because second condition is checked
    }
}

输出结果

true
true
true
10
true
11

三元运算符

class OperatorExample {
    public static void main(String args[]) {
        int a = 2;
        int b = 5;
        int min = (a < b) ? a : b;          //if true,min = a,else min =b;
        System.out.println(min);
    }
}

输出结果

2

Java分配运算符示例

class OperatorExample {
    public static void main(String args[]) {
        int a = 10;
        int b = 20;
        a += 4;// a=a+4 (a=10+4)
        b -= 4;// b=b-4 (b=20-4)
        System.out.println(a);
        System.out.println(b);
    }
}

输出结果:

14
16

Java分配运算符示例:相加short类型数据

class OperatorExample {
    public static void main(String args[]) {
        short a = 10;
        short b = 10;
        a = a + b;// 编译时错误,因为 10+10=20 现在是 int 类型
        a += b;    //没问题,+= 一元运算符,相当于赋值
        System.out.println(a);
    }
}

输出结果:

编译时错误....
class OperatorExample {
    public static void main(String args[]) {
        short a = 10;
        short b = 10;
        a = (short) (a + b);// 20 which is int now converted to short
        System.out.println(a);
    }
}

输出结果:

20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值