Java学习06:基本运算符

基本运算符

运算符的种类

种类 包含 注释
算数运算符 +,-,*,/,%,++,-- 自加,自减
赋值运算符 = 用来赋值
关系运算符 >,<,>=,<=,==,!= ,instanceof 最后一个词,是二元操作符(运算符)
逻辑运算符 &&,||,! 与,或,非
位运算符 &,|,^,~,>>,<<,>>> 跟进制有关
条件运算符 ?,:
拓展赋值运算符 +=,-=,*=,/=

运算符的特点

二元运算符

  • 在多个不同数据类型的加减乘除中,如果包含long,则最后输出的数据类型为long。

    如果不包含long,结果必定会为int,无论里面有没有。

    public class Demo07 {
        public static void main(String[] args) {
            long a = 123123123123123L;
            int b = 12313;
            short c = 10;
            byte d = 2;
    
            System.out.println(a+b+c+d);//会输出一个long类型的数
            System.out.println(b+c+d);//会输出一个int类型的数
            System.out.println(c+d);//会输出一个int类型的数
        }
    }
    
  • 更多运算(幂运算等)会使用Math工具类

    //随时随地调用math方法:输入Math.pow(),然后alt+回车。
    double pow = Math.pow(2, 3);
    System.out.println(pow);
    

加号的其他用途

  • 字符串连接符:

    • 在输出过程中,如果想要在同一个sout语句中输出多个内容,需要用到加号+

    • 在字符串处理中,若加号+ 前面或后面出现了字符串,那么会把整个连加运算当成多个字符串,然后进行连续输出。

      举个例子:

public class Demo09 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a+b);//输出:30。简单的加法运算
        System.out.println(""+a+b);//输出:1020,即依次输出a与b。
        System.out.println(a+b+"");//输出:30。即便已经出现了“”,但是a+b发生在最前,所以相当于把“30”这个字符串输出了。
        System.out.println(a+b+""+b);//输处:3020。这是对上一条语句的验证。
    }
}

自增自减

  • b = a++:先执行这一行语句(赋值,把a此时的值赋给b),再自增

  • b = ++a:先自增,再执行这一行语句。

关系运算符

  • 结果一定是布尔值,只有true与false

逻辑运算符

  • 短路运算

    在&&中存在特性:若&&前已经为假,则后面的东西不会被执行

    int c = 5;
    boolean flag = (c<4)&&(c++<4);
    System.out.println(flag);
    System.out.println(c);
    

​ 输出结果:false,5。 也就是说(c++<4)这一块没有被执行。

位运算

  • &,|,^,~:两个二进制,逐位比较!!

​ A = 0011 1100

​ B = 0000 1101

​ 那么A&B 逐位进行“与”的比较,会生成0000 1100

​ A|B 逐位进行“或”的比较,会生成0011 1101

​ A^B 逐位进行“异或”的比较,相同则0,不同则1: 0011 0001

为取反,如B = 1111 0010

  • << 与 >>:效率极高的方法

    2<<3 = 16,为什么呢?

    二进制与十进制对照:

    二进制 十进制
    0000 0000 0
    0000 0001 1
    0000 0010 2
    0000 0011 3
    0000 0100 4
    0000 1000 8
    0000 1100 12
    0001 0000 16

    可以发现,2与16所对应的二进制数实际上就是把那个1左移3次

    原来,<<指的是“左移”,也可以解释为添0:

    可以看到,“3”是11,左移两次后变成1100,其实就是在后面加两个0

    上述运算可以记为:3<<2。

    总结了一个规律: 2<<3 即为 2 ×2×2×2,乘了三个2

    ​ 3<<2 即为 3 ×2×2 ,乘了两个2

  • 所以<<计算可以记为:A<<B = A乘上B个2。

  • 同理,>>计算无非是:A>>B = A除以B个2。

三元运算符

  • x ?y:z

    如果x是true,则结果为y,否则为z。

    举例:

    int score = 80;
    System.out.println(score < 60 ? "不及格":"及格");
    

来点白玉老师!

Java学习06:基本运算符

上一篇:mysql&SQLyog安装及环境配置


下一篇:Java Doc API文档