编程语言
首页 > 编程语言> > Java基础04

Java基础04

作者:互联网

运算符

算数运算符

public class Demo01 {
   public static void main(String[] args) {
       int a = 10;
       long b = 23213L;
       short c = 23;
       byte d = 122;
       System.out.println(a+b+c+d);//long类型
       System.out.println(a+c+d);//int类型
       System.out.println(c+d);//int类型
  }
}

在这里有long类型结果为long

如果没有long,结果都是int类型

自增自减

    public static void main(String[] args) {        
int x = 3;
       int y = x++; //先执行y = x 然后再执行x = x + 1
       int z = ++x; //先执行x = x + 1 然后再执行z = x
       System.out.println(x);
       System.out.println(y);
       System.out.println(z);
  }
//分别输出 5 3 5

可以看见自增/减运算符的位置会影响执行的顺序

关系运算符

public class Demo02 {
   public static void main(String[] args) {
       //关系运算符
       int a = 10;
       int b = 20;
       System.out.println(a>b);
       System.out.println(a<b);
  }
}
//系统分别输出 false、true

通过关系运算返回的是一个布尔值

逻辑运算符

就是我们很常说的 与或非

短路运算

public class Demo03 {
   public static void main(String[] args) {
       int c = 5;
       boolean flag = (c < 4)&&(c++ > 4);
       System.out.println(flag);
       System.out.println(c);
  }
}
//系统输出 false 5

很明显 判断完c < 4为假直接结束了与运算,给flag赋了false

后续系统输出的5说明c并没有自增,也证明了c++ > 4没有被执行,这就是所谓的短路运算

位运算符

        /**
        * A = 0011 1100
        * B = 0000 1101
        *     |||| ||||
        *     |||| ||||
        * A&B 0000 1100
        * A|B 0011 1101
        * A^B 0011 0001
        * ~B 1111 0010
        */

这里的位运算就和计算机组成原理位运算一样 参考着理解就行

拓展:2*8怎么做最为快速

         /*
* 2*8=16 2*2*2=16
*
        * << *2
        * >> /2
        * 效率极高!
        *
        * 0000 0001 1
        * 0000 0010 2
        * 0000 0011 3
        * 0000 0100 4
        * 0000 1000 8
        * 0001 0000 16
        */
       System.out.println(2 << 3);

不难发现1每左移一位 就是在乘2,因此2*8直接看成2左移3位,

对于计算机来说,位运算是最具有效率的运算方式,因此就是2<<3位最快速的方法

三元运算符

一句话看懂 网恋 ? 双流机场-8000 : 无事发生

字符串拼接

        int a = 10;
       int b = 20;
       System.out.println("" + a + b);
       System.out.println(a + b + "");
//输出 1020 30

字符串在前面,后面的加号就是拼接 字符串在后面,那前面的加号就是加运算了

优先级

优先级运算符结合性
1 ()、[]、{} 从左向右
2 !、+、-、~、++、-- 从右向左
3 *、/、% 从左向右
4 +、- 从左向右
5 <<、>>、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= 从右向左

标签:Java,04,int,基础,System,运算符,println,左向右,out
来源: https://www.cnblogs.com/shiranai/p/15427142.html