java基础之 运算符

运算符分成:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符

一、算数运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。

public class Main {

    public static void main(String[] args) {
        // 加法 + 相加运算符两侧的值
        // + 和字符串进行运算,起的是拼接作用
        System.out.println("1+2=" + (1 + 2));
        System.out.println("‘00‘+2=" + ("00" + 2));
        // 输出:
        // 1+2=3
        // ‘00‘+2=002

        //减法 - 左操作数减去右操作数
        System.out.println("10-1.9=" + (10 - 1.9));
        //输出:10-1.9=8.1

        //乘法 * 相乘操作符两侧的值
        System.out.println("2*3=" + (2 * 3));
        //输出:2*3=6

        //除法 / 左操作数除以右操作数

        //java中整数除于整数得到整数,产生的小数将强制去除
        //如果预计会出现小数,请使用双精度小数进行计算
        System.out.println("2/9=" + (2 / 9));
        System.out.println("5/3=" + (5 / 3));
        System.out.println("5.0/3=" + (5.0 / 3));
        System.out.println("5/3.0=" + (5 / 3.0));
        //被除数为0的,触发异常
        //System.out.println(2 / 0);
        // 输出:
        // 2/9=0
        // 5/3=1
        // 5.0/3=1.6666666666666667
        // 5/3.0=1.6666666666666667

        //取余 % 左操作数除以右操作数的余数
        System.out.println("2%9=" + (2 % 9));
        System.out.println("9%4=" + (9 % 4));
        // 输出:
        // 2%9=2
        // 9%4=1

        //自增运算 ++
        //++i; 表示先进行i=i+1后得到i的值
        //i++; 表示先得到i的值,在进行i=i+1;
        //自减运算符 -- 也同理
        int i = 1;
        System.out.println("i=1,2*++i=" + (2*++i));
        int j=1;
        System.out.println("j=1,2*j++=" + (2*j++));
        // 输出:
        // i=1,2*++i=4
        // j=1,2*j++=2
    }
}

二、关系运算符

关系运算符主要用于计算布尔运算的,返回值只有Boolean类型的值。

public class boolTest {
    public static void main(String[] args) {
        //  ==    检查如果两个操作数的值是否相等,如果相等则条件为真。
        System.out.println("1==1.0 " + (1 == 1.0));

        //  !=    检查如果两个操作数的值是否相等,如果值不相等则条件为真。
        System.out.println("1!=1 " + (1 != 1));

        //  >     检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
        System.out.println("10.1>10 " + (10.1 > 10));

        //  <     检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
        System.out.println("10.1<10 " + (10.1 < 10));

        //  >=    检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
        System.out.println("10.1>=10 " + (10.1 >= 10));

        //  <=    检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
        System.out.println("10.1<=10 " + (10.1 <= 10));
    }
}
//结果:
// 1==1.0 true
// 1!=1 false
// 10.1>10 true
// 10.1<10 false
// 10.1>=10 true
// 10.1<=10 false

 

 三、逻辑运算符

java中逻辑运算符分为:&、&&、|、||、!

&、&&表示:true&true=truetrue&false=falsefalse&false=false|、||表示:true|true=truetrue&false=truefalse&false=false

!表示:翻转逻辑状态,例如:!true=fasle;

其中的单个逻辑运算符表示先计算在比较,双逻辑运算符如果左边表达式已经得出结果,则不计算右边表达式。

package test;

public class AndOr {
    public static void main(String[] args) {
        boolean a = (1 == 1);
        System.out.println("双或:" + (a || m1(1)));
        System.out.println("单或:" + (a | m1(1)));
    }

    //这是用来测试是否调用了右边的表达式
    public static boolean m1(int num) {
        System.out.println("执行了m1()...");
        return num > 10;
    }

    /* 结果:
       双或:true
       执行了m1()...
       单或:true
    */
}

四、位运算符

java定义的位运算符有

  &:如果相对应位都是1,则结果为1,否则为0;

   |:如果相对应位都是0,则结果为0,否则为1

  ^:如果相对应位值相同,则结果为0,否则为1

 〜:按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

<<:按位左移运算符。左操作数按位左移右操作数指定的位数。

>>:按位右移运算符。左操作数按位右移右操作数指定的位数。

>>>:按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

package test;

public class BitOper {
    public static void main(String[] args) {
        int a = 4;// 4 = 0100
        int b = 13;// 13 = 1101

        // & 如果相对应位都是1,则结果为1,否则为0
        // 0100 & 1101 = 0100
        System.out.println("4&13=" + (a & b));

        // | 如果相对应位都是0,则结果为0,否则为1
        // 0100 | 1101 = 1101
        System.out.println("4|13=" + (a | b));

        // ^ 如果相对应位值相同,则结果为0,否则为1
        // 0100 ^ 1101 = 1001
        System.out.println("4^13=" + (a ^ b));

        // ~ 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
        // ~0100  = 1011
        System.out.println("~4=" + (~a));

        // << 按位左移运算符。左操作数按位左移右操作数指定的位数。
        // 0100<<2=0001 0000
        System.out.println("4<<2=" + (a<<2));

        // >> 按位右移运算符。左操作数按位右移右操作数指定的位数。
        // 0100>>2=0001
        System.out.println("4>>2=" + (a>>2));

        // >>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
        // 1100>>>2=0011
        System.out.println("12>>>2=" + (12>>>2));
    }
}

打印结果:

4&13=4
4|13=13
4^13=9
~4=-5
4<<2=16
4>>2=1
12>>>2=3

五、赋值运算符

赋值运算符包括 =、+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=

其中:

= 表示把 右边的值赋值给左边;

a+=b 等同于 a=a+b;

a-=b 等同于 a=a-b;

a*=b 等同于 a=a*b;

a/=b 等同于 a=a/b;

a%=b 等同于 a=a%b;

a<<=b 等同于 a=a<<b;

a>>=b 等同于 a=a>>b;

a&=b 等同于 a=a&b;

a|=b 等同于 a=a|b;

a^=b 等同于 a=a^b;

原文地址:https://www.cnblogs.com/lixingwu/p/9248734.html