• Java(8):运算符


    运算符

    • 算数运算符:+ - * / % ++ --
    • 赋值运算符:= += -= *= /=
    • 关系运算符:> < >= <= == != instanceof
    • 逻辑运算符:&& || !
    • 位运算符:& | ^ ~ >> << >>>
    • 条件运算符?:

    自增理解

    int a = 3;
    int b = a++; // 先赋值,再自增,相当于在后面执行一句a = a + 1
    //a = a + 1
    System.out.println(a); // 4
    // a = a + 1
    int c = ++a;// 先自增,再赋值,相当于在前面执行一句a = a + 1
    
    System.out.println(a); // 5
    System.out.println(b); // 3
    System.out.println(c); // 5
    

    注意点:
    a++和a=a+1有区别,看下面代码:

    short a = 10;
    a = a + 1; // 编译报错
    a = (short)(a + 1); // 成功
    a++; // 成功,自增不会改变原来的数据类型
    

    位运算

    A  = 0011 1100
    B  = 0000 1101
    A&B= 0000 1100  与,位都为1,才为1
    A|B= 0011 1101  或,有一个为1,则为1
    A^B= 0011 0001  异或,位相同则为0,不同则为1  公式:m = (m^n)^n 
    ~B = 1111 0010  非,取反
    // << 左移  在一定范围内(如果1移动到符号位,即最高位,就变成负数了,所以说一定范围内),相当于*2,右边移动之后空出来的地方用0补齐
    // >> 右移  在一定范围内相当于/2,如果是正数,左边移动之后空出来的地方用0补齐;如果是负数,左边移动之后空出来的地方用1补齐;
    // >>> 无符号右移  在一定范围内相当于/2,左边移动之后空出来的地方用0补齐;
    0000 0000 0
    0000 0001 1
    0000 0010 2  1左移一位<<  就是4
    0000 0011 3
    0000 0100 4  1左移一位<<  就是8
    0000 1000 8
    0001 0000 16    
    

    字符串连接

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

    三元运算符

    // x?y:z
    // 如果x为真,则y,否则z
    int score = 59;
    String type = score>60 ? "及格":"不及格";
    System.out.println(type);
    

    优先级

    youxianji

  • 相关阅读:
    find命令 -- 之查找指定时间内修改过的文件
    nginx
    lighttpd 搭建
    mysql主从复制5.6基于GID及多线程的复制笔记
    centos下MySQL主从同步配置
    数据库集群搭建
    linux 系统监控、诊断工具之 top 详解
    Linux下Apache并发连接数和带宽控制
    DXGI屏幕捕捉
    CUDA以及CUDNN安装配置(WIN10为例)
  • 原文地址:https://www.cnblogs.com/zhangtu/p/14454047.html
Copyright © 2020-2023  润新知