运算符

2020-08-16  本文已影响0人  周宏全_ff77

运算符

二元运算符

public static void main(String[] args) {
        //二元运算符
        int a = 10;
        int b = 20;
        
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
    }

运算拓展

    - **如果多个数运算时,里面有Long,那么结果类型为Long类型,否则全为Int类型。**
    - **如果多个数运算时,里面有double,那么结果类型为double类型,否则全为float类型。**
public static void main(String[] args) {
        // 如果多个数运算时,里面有Long,那么结果类型为Long类型,否则全为Int类型。
        long a = 134348837L;
        int b = 13634;
        short c = 17;
        byte d = 2;
        
        System.out.println(a+b+c+d); //Long
        System.out.println(b+c+d); //Int
        System.out.println(c+d); //Int
        
        
        // 如果多个数运算时,里面有double,那么结果类型为double类型,否则全为float类型。
        float f = 12.8f;
        double e = 1248.87;
        
        System.out.println(f+e); //double
        System.out.println(f+f); //float
    }

关系运算符

public static void main(String[] args) {
        // 关系运算符:正确or错误
        int a = 10;
        int b = 20;
        
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }

自增自减运算符

public static void main(String[] args) {
        
        // 自增
        int a = 3;
        int b = a++; // 先赋值操作,再自加操作
        int c = ++a; // 先自加操作,再赋值操作
        
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        
        // 自减
        int d = 3;
        int e = d--; // 先赋值操作,再自减操作
        int f = --d; // 先自减操作,再赋值操作
        
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
    }

幂运算

public static void main(String[] args) {
        // 幂运算 2^3=2*2*2=8
        double m = Math.pow(2, 3);
        System.out.println(m);
    }

逻辑运算符

public static void main(String[] args) {
        // 与(&&) 或(||) 非(!)
        boolean a = true;
        boolean b = false;
        
        System.out.println("a&&b: "+(a&&b)); //逻辑与运算:两个变量都为真,结果才为真
        System.out.println("a||b: "+(a||b)); //逻辑或运算:两个变量都为假,结果才为假
        System.out.println("!(a&&b): "+!(a&&b)); //逻辑非运算:如果为真,则为假;如果为假,则为真。
        
        // 短路运算
        // 逻辑与运算:如果第一个变量为假,则不必继续运算,直接输出结果为假。
        // 逻辑或运算:如果第一个变量为真,则不必继续运算,直接输出结果为真。
    }

位运算

A = 0011 1100
B = 0000 1101

A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B  = 1111 0010
  
//面试题
  计算 2*8=16 
  转化为 2*2*2*2 = 16
  运算规则:<< *2 (左移乘2)
                >> /2 (右移除2)
  
  0000 0000  0
  0000 0001  1
  0000 0010  2  *
  0000 0011  3
  0000 0100  4  *
  0000 1000  8  *
  0001 0000  16 *
  
  故运算结果为:2<<3 = 16 (2向左移动3位得到16)

字符串连接符

public static void main(String[] args) {
        int a = 10;
        int b = 20;
        
        a+=b; //a = a + b
        a-=b; //a = a - b
        System.out.println(a);
        
    //面试题 
        //字符串连接符(先到先得原理)
        System.out.println(""+a+b); //字符串连接符在前面则结果为字符串相连
        System.out.println(a+b+""); //字符串连接符在后面则进行前面的运算
    打印结果:1020
                 30
    }
上一篇 下一篇

猜你喜欢

热点阅读