运算符

  • 算术运算符:+,-,*,/,%(取余/求模)
  • 自增自减运算符:++,--
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,>>,<<,>>>
  • 条件运算符(三元运算符):? :
  • 扩展赋值运算符:+=,-=,*=,/=

算术运算符

  • +:加法运算符:
    1.表示正数
    2.表示算术的加法
    3.表示字符串的拼接
  • /:除法运算符:
    1.如果是两个整数相除,那么结果还是一个整数
    2.如果任意一个操作数是小数,那么结果就是小数
  • %:取模运算符、取余运算符:获取两数相除的余数
    1.注意事项:取余的结果的符号只和%前面的操作数的符号有关
    2.作用:获取余数;判断是否整除;判断奇偶

自增自减运算符:

  • ++:自增运算符
  • 作用:在某个变量的基础上,自增1
  • 注意事项:
    1.自增运算符既可以写在变量的前面,也可以写在变量的后面
    2.当a++和++a作为一个语句存在时,没有任何区别,都表示一个自增的动作
    3.当a++和++a作为一个表达式存在时,有区别的,表示的数量的值是有去别的,a++是先获取a的值,然后再自增;++a是先自增,再获取a的值

赋值运算符

  • 用于给变量进行赋值的运算符
  • 分类:
    基本的赋值运算符:=
    扩展的赋值运算符:+= -= *= /= %=
  • 基本的赋值运算符
    将赋值运算符右边的数量,赋值给左边的自变量
  • 扩展的赋值运算符
    将符号左右两边的数量进行算数运算,将结果赋值给符号左边的变量

比较运算符(关系运算符)

  • 用于比较两个数据是否相等,比较两个数据的大小关系的运算符
  • 分类:
    == !=:可以比较任意的数据类型
    < > >= <=:可以比较数值类型(整数类型、小数类型、字符类型)
  • 运算结果:
    Boolean类型,true/false

逻辑运算符

  • 用于处理逻辑值的运算符,就是逻辑运算符
  • 处理的数据:逻辑值;处理的结果:逻辑值
  • &:逻辑与。全真为真,否则为假(前面的表达式为假,后面的表达式也执行)
  • &&:短路与。全真为真,否则为假(前面的表达式为假,则后面的表达式不执行)
  • |:逻辑或。全假为假,否则为真(前面的表达式为真,后面的表达式也执行)
  • ||:短路或。全假为假,否则为真(前面的表达式为真,则后面的表达式不执行)
  • !:逻辑非。遇真为假,遇假为真
  • ^ :逻辑异或。必须两个不同的结果才是true

位运算符

  • 对于数据在内存中表示,进行按照位来移动,以此打到对数据进行运算的目的
  • 说明:只能操作整数类型的数据,运算结果还是整数
  • 罗列:<< >> >>> & | ^ ~
  • "<<":左移运算符,每次移动一位,会将原来的数字扩大2倍
  • ">>":右移运算符,每次移动一位,会将原来的数字缩小为原来的二分之一
  • ">>>":无符号右移,每次移动一位,会将原来的数字缩小为原来的二分之一,这个运算符只能针对正数操作。效率高于右移运算符
  • 总结特点:运算比直接乘以2或者除以2的效率要高很多
public class Demo {
    public static void main(String[] args){
        /*
        *   A = 0011 1100
        *   B = 0000 1101
        * ---------------
        * A&B = 0000 1100 如果两个都为1才为1
        * A|B = 0011 1101 有一个1则为1
        * A^B = 0011 0001 相同为0,相异为1
        *  ~B = 1111 0010 遇0为1,遇1为0
        */
 
        int A = 0b00111100;
        int B = 0b00001101;
        System.out.println(Integer.toBinaryString(A & B));
        System.out.println(Integer.toBinaryString(A | B));
        System.out.println(Integer.toBinaryString(A ^ B));
        System.out.println(Integer.toBinaryString(~B));
    }
}

运行结果如下:

三元运算符(条件运算符)

  • 元:可以操作的数据或者表达式
  • 三元运算符:同时可以操作三个数据或者表达式的运算符
  • 格式:
    表达式1 ? 表达式2 : 表达式3
  • 说明:
    表达式1必须是boolean类型的表达式,计算的结果只能是true或者false
    表达式2和表达式3可以是任意类型的表达式
  • 运算流程
    计算表达式1的值,要么为true,要么为false
    如果表达式1的值为true,选择表达式2作为三元表达式的计算结果
    如果表达式1的值为false,选择表达式3作为三元表达式的计算结果

运算符优先级

  1. ()
  2. !、-、++、--
  3. /、*、%
  4. +、-
  5. <<、>>、>>>
  6. <、<=、>、>=、instanceof
  7. ==、!=
  8. &
  9. ^
  10. |
  11. &&
  12. ||
  13. ?:
  14. =、+=、-=、*=、/=、%=、&=
posted @ 2021-11-30 15:46  呵嗷嚎  阅读(434)  评论(0)    收藏  举报