zoukankan      html  css  js  c++  java
  • java基础-操作符

    浏览以下内容前,请点击并阅读 声明

    定义:操作符是一种能够对一个,两个或三个操作对象执行特定的操作,并返回一个结果的特定符号。

    java中操作符的种类和优先级如下表所示,除了赋值运算,所有二元操作符运算顺序都是由左到右,优先级顺序由上往下依次降低:

     操作符优先级
    后缀 expr++ expr--
    一元运算 ++expr --expr +expr -expr ~ !
    乘除 * / %
    加减 + -
    位移 << >> >>>
    大小关系的 < > <= >= instanceof
    等同性 == !=
    按位与 &
    按位非 ^
    按位或 |
    逻辑与 &&
    逻辑或 ||
    三元运算 ? :
    赋值 = += -= *= /= %= &= ^= |= <<= >>= >>>=

    以下对各个操作符逐一说明:

    赋值操作符

      赋值操作符“=”是java中使用最多的操作符,很简单,它的作用就是将右侧的值赋值给左侧的操作对象。

      还有一类赋值操作符,就是将算数操作符,位移操作符,位操作符与等号组合使用,包括+=, -=, *=, /= ,%= ,&=, ^=, |= ,<<= ,>>= ,>>>=他们的使用能简化代码。如

    a+=1;
    //等同于
    a=a+1;

    算数操作符

      算数操作符包括加,减,乘,除以及取余,如下表所示:

     操作符描述
    + 加操作符 (也可用于字符串的连接操作)
    - 减操作符
    * 乘操作符
    / 除操作符
    % 取余操作符

    一元操作符

      一元操作符只需要一个操作对象,包括如下操作符:

     操作符描述
    + 一元加操作符; 表明该数字位正数 (然而数字前没有符号也是正数)
    - 一元减操作符; 使一个表达式变为负
    ++ 增加操作符; 加1
    -- 减操作符; 减 1
    ! 逻辑操作符; 非

      增加操作符可用于操作对象之前(前缀)也可用与操作对象之后(后缀),代码

    int result=1;
    //输出为1
    System.out.println(result++);
    //result已经增加1 ,输出为2
    System.out.println(result);
    
    //--分割线
    
    int result =1;
    //输出为2
    System.out.println(++result);
    //result已经增加1 ,输出为2
    System.out.println(result);

    都会使得变量result增加1,唯一不同的是取值,前者(result++)取值为result 而后者(++result)取值为result+1。

      相等与大小关系操作符

      相等与大小关系操作符比较简单,要注意的是,判断是否相等,需要使用“==”而不是“=”,“=”是赋值操作符,整个表达式可以返回true或者false。

    ==      等于
    !=      不等于
    >       大于
    >=      大于等于
    <       小于
    <=      小于等于
    条件操作符(逻辑判断)
    条件操作符的操作对象是两个布尔表达式,需要注意的是,他们有“短路”特性,即只有在必要时,才会对第二个表达式进行判断
    && 条件与 || 条件或
    另外一个条件操作符是 ?:,它是一个三元操作符,作用相当于 if-then-else语句,用法如下所示:
    boolean someCondition = true;
    //如果someCondition位true 则将value1赋值给result 否则将value2赋值给result 
    result = someCondition ? value1 : value2;

    位级与位移操作符

      位操作符的一般的使用比较少,但是要知道他们是存在的。

      ~ ,一元操作符,用于将操作对象反置,即将数字中所有的0变为1,把所有的1变为0。

      >>,带符号,将一个位数字向右移动若干位,移动的位数由右侧的操作对象决定。

      <<,带符号,将一个位数字向左移动若干位,移动的位数由右侧的操作对象决定。

      >>>,不带符号,将一个位数字向右移动若干位,移动的位数由右侧的操作对象决定。

       & ,按位与

      ^,按位或非

      | ,按位或

      关于位移的使用,请参考:Java的位移操作

    instanceof操作符

    instanceof操作符用于判断左侧操作对象是否为右侧操作对象的实例,即如果左侧对象的类继承右侧的类,或者实现右侧的接口,则返回true:

    //假设各个类的关系如下
    //class Child extends Parent implements MyInterface {}
    //interface MyInterface {}
    //则有:
    class InstanceofDemo {
        public static void main(String[] args) {
    
            Parent obj1 = new Parent();
            Parent obj2 = new Child();
    
            System.out.println("obj1 instanceof Parent: "
                + (obj1 instanceof Parent));
            System.out.println("obj1 instanceof Child: "
                + (obj1 instanceof Child));
            System.out.println("obj1 instanceof MyInterface: "
                + (obj1 instanceof MyInterface));
            System.out.println("obj2 instanceof Parent: "
                + (obj2 instanceof Parent));
            System.out.println("obj2 instanceof Child: "
                + (obj2 instanceof Child));
            System.out.println("obj2 instanceof MyInterface: "
                + (obj2 instanceof MyInterface));
        }
    }

    上述代码输出为:

    obj1 instanceof Parent: true
    obj1 instanceof Child: false
    obj1 instanceof MyInterface: false
    obj2 instanceof Parent: true
    obj2 instanceof Child: true
    obj2 instanceof MyInterface: true
    
    
    
  • 相关阅读:
    数据排序
    (一)Spark简介Java&Python版Spark
    醒 了
    祈福
    可以接受失败,但不选择放弃
    烦中偷乐
    Yahoo! UI Library入门
    文章内容的简单优化方法
    Asp.Net网站速度优化
    ASP.NET实现GZIP压缩优化
  • 原文地址:https://www.cnblogs.com/justforcon/p/6004831.html
Copyright © 2011-2022 走看看