Java教程

Java基础04

本文主要是介绍Java基础04,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

运算符

  • 算数运算符 + - * / % -- ++

  • 赋值运算符 =

  • 关系运算符 >, <, >=, <=, ==, !=, instanceof

  • 逻辑运算符&&, ||, !

  • 位运算符&, |, ^, ~, <<, >>, >>>

  • 条件运算符 ? :

  • 偷懒赋值运算符 +=, -=, *=, /=

算数运算符

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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!