• 运算符


    1.算术运算符:+ - * / % ++ --  + (连接符)

    设整数变量A的值为10,变量B的值为20:

    + 加法:相加运算符两侧的值 A + B 等于 30
    - 减法:左操作数减去右操作数 A – B 等于 -10
    * 乘法:相乘操作符两侧的值 A * B等于200
    / 除法:左操作数除以右操作数 B / A等于2
    取余:左操作数除以右操作数的余数 B%A等于0
    ++ 自增: 操作数的值增加1

    ++在前:先自增1,后运算

    ++在后:先运算,后自增1

    -- 自减: 操作数的值减少1

    --在前:先自减1,后运算

    --在后:先运算,后自减1

    连接符:+ 只能使用在String与其他数据类型变量之间使用。  

    2.赋值运算符:=  +=  -=  *=  /=  %= 

    = 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
    + = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
    - = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
    * = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
    / = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A
    (%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A
    << = 左移位赋值运算符 C << = 2等价于C = C << 2
    >> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
    &= 按位与赋值运算符 C&= 2等价于C = C&2
    ^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
    | = 按位或赋值操作符 C | = 2等价于C = C | 2
     1 int i2,j2;
     2 //连续赋值
     3 i2 = j2 = 10;
     4 
     5 int i3 = 10,j3 = 20;
     6 int num1 = 10;
     7 num1 += 2;//num1 = num1 + 2;
     8 System.out.println(num1);//12
     9 
    10 int num2 = 12;
    11 num2 %= 5;//num2 = num2 % 5;
    12 System.out.println(num2);
    13 
    14 short s1 = 10;
    15 //s1 = s1 + 2;//编译失败
    16 s1 += 2;//结论:不会改变变量本身的数据类型
    17 System.out.println(s1);

    3.关系运算符(关系运算符): == != >  <  >=  <=  

    == 相等为真
    != 值不相等为真
    大于为真
    小于为真
    >= 大于或等于为真
    <= 小于或等于为真
    1. 比较运算符的结果是boolean类型
    2. > < >= <= :只能使用在数值类型的数据之间。
    3. == 和 !=: 不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间。
    1 Account acct1 = new Account(1000);
    2 Account acct2 = new Account(1000);
    3 boolean b1 = (acct1 == acct2);//false比较两个Account是否是同一个账户。
     boolean b2 = (acct1 != acct2);//true

    instanceof

    左边的对象是否是它右边的实例。返回 boolean 的数据类型。

     1 import ​java.util.ArrayList;
     2 import java.util.Vector;
     3  4 public class Main {
     5  6 publicstatic void main(String[] args) {
     7   ​Object testObject = new ArrayList();
     8      ​displayObjectClass(testObject);
     9   ​}
    10public static void displayObjectClass(Object o) {
    11if (o instanceof Vector)
    12      ​System.out.println("对象是 java.util.Vector 类的实例");
    13else if (o instanceof ArrayList)
    14      ​System.out.println("对象是 java.util.ArrayList 类的实例");
    15else
    16      ​System.out.println("对象是 " + o.getClass() + " 类的实例");
    17   ​}
    18 }
    对象是 java.util.ArrayList 类的实例

     

    4.逻辑运算符:& &&  |  || !

    操作的都是boolean类型的变量。而且结果也是boolean类型

    &   &&   与 

    相同点1:& 与 && 的运算结果相同

    相同点2:当符号左边是true时,二者都会执行符号右边的运算

      不同点:当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算(两个的会短路)。

    开发中,推荐使用&&,效率高

    |   ||   或

    相同点1:| 与 || 的运算结果相同
    相同点2:当符号左边是false时,二者都会执行符号右边的运算
      不同点:当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算(两个的会短路)。
    开发中,推荐使用||,效率高

    !  非

    反转操作数的逻辑状态

    5.位运算符:<<  >> >>> &  |  ^  ~

    如果相对应位都是1,则结果为1,否则为0
    | 如果相对应位都是 0,则结果为 0,否则为 1
    ^ 如果相对应位值相同,则结果为0,否则为1
    按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
    <<  按位左移运算符。左操作数按位左移右操作数指定的位数。
    >>  按位右移运算符。左操作数按位右移右操作数指定的位数。
    >>>  按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

    <<      :     左移运算符,num << 1,相当于num乘以2

    >>      :     右移运算符,num >> 1,相当于num除以2

    >>>    :     无符号右移,忽略符号位,空位都以0补齐

    6.三元运算符:(条件表达式)? 表达式1 : 表达式2

    ① 条件表达式的结果为boolean类型

    ② 根据条件表达式真或假,决定执行表达式1,还是表达式2

      如果表达式为true,则执行表达式1。

      如果表达式为false,则执行表达式2。

    ③ 表达式1 和表达式2要求是一致的。

    ④ 三元运算符可以嵌套使用

    ⑤凡是可以使用三元运算符的地方,都可以改写为if-else。反之,不成立,不一定都可以。

    ⑥如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。

  • 相关阅读:
    这难道就是一个普通人的一生???
    【纪念】纪念随笔数上3位数
    【移动端】js禁止页面滑动与允许滑动
    【react懒加载组件】--react-lazyload
    ES6知识整理(7)--Set和Map数据结构
    Hibernate检索策略
    Hibernate HQL多表查询
    Hibernate各种查询操作(二)
    Hibernate各种查询操作(一)
    Hibernate多对多操作
  • 原文地址:https://www.cnblogs.com/rijiyuelei/p/12323059.html
Copyright © 2020-2023  润新知