• 跟着阿里学JavaDay04——Java基础语法(二)


    一、Java运算符

    • 运算符的简介

    所有的程序开发,都是对数字的进行处理。而对数字的处理,一定会存在所谓的操作模式,而这些操作模式就被称为运算符。

    • 算术运算符

        对于算术运算符,我们主要掌握++,--的运用就可以了,因为前面的+,-,*,/,%(取余),我们日常生活经常接触,基本都能掌握住。

        而对于++,--,我们可以通过程序以及编译运行结果来得出结论

    public class Calculation
    {
        public static void main(String[] args){
            int X = 10;
            System.out.println("X="+X);//打印10
            ++X;
            System.out.println("++X="+X);//打印11
            int Y = 20;
            System.out.println("Y="+Y);//打印20
            ++Y;
            System.out.println("++Y="+Y);//打印21
            int Z = ++X+Y--;
            //X先自加(X==12),然后Z = 12+21 = 33 
            //最后算完Z,Y再进行自减(Y==20)
            System.out.println("Z="+Z);
            System.out.println("X="+X);
            System.out.println("Y="+Y);
        }
    }
    
    
    E:Java_Project4_1Calculation>java Calculation
    X=10
    ++X=11
    Y=20
    ++Y=21
    Z=33
    X=12
    Y=20
      • 结论:
      • “++”,“--”在变量,先进行变量自加/减,后续再进行运算
      • “++”,“--”在变量,先整个算术进行运算,算术结束运算后,再另行变量的自加/减
    • 三目运算符

        首先介绍一下三目运算符的格式

          int  Z=X>Y?X:Y;

          定义一个整型变量Z,X若大于Y,把X值赋予变量Z,否则把Y赋予Z。

        实例运用:

    public class Calculation
    {
        public static void main(String[] args){
            int X=10,Y=20;
            int Z = X>Y?X:Y;
            System.out.println(Z);
        }
    }

        其实还可以这样玩的(但是极其不建议):

    public class Calculation
    {
        public static void main(String[] args){
            int X=10,Y=20,Z=44;
            int max = X>Y?(X>Z?X:Z):(Y>Z?Y:Z);
            System.out.println(max);
        }
    }

        套娃虽好玩,但是极其不建议。

        而我们的三目运算,可以很好地解决简单的if语句的编写!!

    • 逻辑运算符与位运算

    逻辑运算与为运算有很多相似的符号,平时使用也很容易混淆,所以这里我们来对比分析之间的异同

    逻辑运算符 位运算符
    &逻辑与 &与运算
    |逻辑或 |或运算
    ^异或 ^异或运算
    !非 ~取反运算
    &&与 >>、<<带符号左右移
    ||或 >>>不带符号右移
    &(逻辑与)和&(与运算)的示例
    public class Calculation {
        public static void main(String[] args) {
            Boolean a=3>2;  //结果为true
            Boolean b=4>5;  //结果为false
            Boolean c=a&b; 
            System.out.println(c);
        }
    }                       //c=true&false ,有一个false,所以结果为false
    public class Calculation
    {
        public static void main(String[] args){
            int x = 4, y = 5;//进行位运算要化成二进制进行计算
            System.out.println(x&y);//4→0100
                                    //5→0101
                                    //与运算后,全1出1,其他出0,所以结果0100,即输出(4)
        }
    }
    |(逻辑或)和|(或运算的示例)
    public class Calculation{
        public static void main(String[] args) {
            Boolean a=3>2;  //结果为true
            Boolean b=4>5;  //结果为false
            Boolean c=a|b;
            System.out.println(c);
        }
    }                       //c=true|false ,有一个true,所以结果为true
    public class Calculation
    {
        public static void main(String[] args){
            int x = 4, y = 5;//进行位运算要化成二进制进行计算
            System.out.println(x|y);//4→0100
                                    //5→0101
                                    //或运算后,有1出1,全0出0,所以结果0101,即(5)
        }
    }
    ^(异或)和^(异或运算)的示例
    public class Calculation{
        public static void main(String[] args) {
            Boolean a=3>2;  //结果为true
            Boolean b=4>5;  //结果为false
            Boolean c=a^b;
            System.out.println(c);
        }
    }                       //c=true^false, 不相同,所以结果为false
    public class Calculation
    {
        public static void main(String[] args){
            int x = 4, y = 5;//进行位运算要化成二进制进行计算
            System.out.println(x^y);//4→0100
                                    //5→0101
                                    //异或运算后,相同出0,不同出1,所以结果0001,即(1)
        }
    }
    !(非)和~(取反运算)的示例
    public class Calculation{
        public static void main(String[] args) {
            Boolean b=4>5;     //结果为false
            Boolean c=!b;
            System.out.println(c);
       }
    }                          //b的结果为false,c的结果为true
    public class Calculation
    {
        public static void main(String[] args){
            int x = 4, y = 5;//进行位运算要化成二进制进行计算
            System.out.println(~x);//4→0100,取反0变1,1变0,即1011,(11)
            System.out.println(~y);//5→0101,取反0变1,1变0,即1010,(10)
        }
    }
    &&(与)和>>、<<(带符号左右移)的示例
    public class ketanglianxi {
        public static void main(String[] args) {
            int a=3;
            boolean b=4>5;         //b的结果为false
            Boolean c=b&&(++a)>3;  // &&右边的(++a)>3并没运算!
            System.out.println(c); //c的结果为false,与示例1的运算结果相同
            System.out.println(a); //b的结果为3!
        }
    }       //注意因为&&左边已经有一个false所以&&右边的表达式不会计算,这样会使运算效率增加
    public class Calculation
    {
        public static void main(String[] args){
            int x = 4, y = -5;//进行位运算要化成二进制进行计算
            int k = x>>2;
            int z = y<<1;
            System.out.println(k);//4→0100,带符号右移两位,即0001,(1)
            System.out.println(z);//5→0101,带符号左移一位,即1010,(-10)
            System.out.println(x);
            System.out.println(y);
            /*注意:因为位移运算后,值会得到释放,所以我们不能直接进行输出*/
        }
    }

    ||(或)和>>>(不带符号右移)的示例

    public class ketanglianxi {
        public static void main(String[] args) {
            Boolean a=3>2;           //a的结果为true
            int b=4;
            Boolean c=a||(++b)>4;    // ||右边的(++b)>4并没运算!
            System.out.println(c);   //c的结果为true,与示例2的运算结果相同
            System.out.println(b);   //b的结果为4!
        }
    }       //注意因为||左边已经有一个true所以||右边的表达式不会计算,这样会使运算效率增加
    public class Calculation
    {
        public static void main(String[] args){
            int x = 0;//进行位运算要化成二进制进行计算
            int k = x>>>1;
            System.out.println(k);
            System.out.println(x);
            /*注意:因为位移运算后,值会得到释放,
            所以我们不能直接进行输出。另外,此时的
            X取值只能是(>=0)*/
        }
    }

    感谢阿里云开发者社区,让我有整套系统的Java学习教程

    同时,感谢博客园,让我有一个免费的博客,并让我做笔记学习!!

  • 相关阅读:
    [NOI2009]管道取珠
    Rebalance再均衡
    生产者分区写入策略
    Kafka事务
    幂等性
    消费者组
    Kafka中的重要概念
    偏移量offset
    服务注册和发现的意思,Spring cloud如何实现?
    负载平衡的意义
  • 原文地址:https://www.cnblogs.com/Cion-Da/p/13021723.html
Copyright © 2020-2023  润新知