zoukankan      html  css  js  c++  java
  • Java基本运算符

    • 算术运算符
    • 关系运算符
    • 按位运算符
    • 逻辑运算符
    • 赋值运算符
    • 其他运算符

     

    1. 算术运算符

    算术运算符在数学表达式中的使用方式与在代数中使用的方式相同。下表列出了算术运算符的使用示例 -

    假设整数类型变量A的值为:10,变量B的值为:20,则 -

    运算符描述示例
    + 加法运算符,第一个操作数加上第二个数操作数 A + B结果为:30
    - 减法运算符,从第一个操作数减去第二个操作数 A - B结果为:-10
    * 两个操作数相乘 A * B结果为:200
    / 左操作数除以右操作数返回模值 B / A结果为:2
    % 左操作数除以右操作数返回余数 B / A结果为:0
    ++ 将操作数的值增加1 A++,则A的值为:11
    -- 将操作数的值减1 A--,则A的值为:9

     

    2. 关系运算符

    Java语言支持以下关系运算符。假设变量A的值是10,变量B的值是20,则 -

    运算符描述示例
    == 等于运算符,检查两个操作数的值是否相等,如果相等,则条件变为真。 A==B结果为假。
    != 不等于运算符,检查两个操作数的值是否不相等,如果不相等,则条件变为真。 A!=B结果为真。
    > 大于运算符,检查左操作数的值是否大于右操作数的值,如果大于,则条件变为真。 A>B结果为假。
    < 小于运算符,检查左操作数的值是否小于右操作数的值,如果小于,则条件变为真。 A<B结果为真。
    >= 大于或等于运算符,检查左操作数的值是否大于等于右操作数的值,如果大于或等于,则条件变为真。 A>=B结果为假。
    <= 小于或等于运算符,检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,则条件变为真。 A<=B结果为真。

     

    3. 按位运算符

    Java定义了几个按位运算符,可以应用于整数类型, 如:longintshortcharbyte。按位运算符处理位并执行逐位运算。 假设a = 60b = 13; 采用二进制格式,它们将如下 -

    a = 0011 1100
    
    b = 0000 1101
    
    -----------------
    
    a&b = 0000 1100
    
    a|b = 0011 1101
    
    a^b = 0011 0001
    
    ~a  = 1100 0011
    

    下面的表中列出了按位运算符,假设整数变量A=60,变量B=13,那么 -

    运算符描述示例
    & 二进制AND运算符,如果存在于两个操作数中,则它会将结果复制到结果中。 A & B的结果为:12,也就是:0000 1100
    Ι 二进制OR运算符,如果存在于任一操作数中,则复制一位。 A Ι B 的结果为:61,也就是:0011 1101
    ^ 二进制异或运算符,如果在一个操作数中设置但不在两个操作数中设置,则复制该位。 A ^ B的结果为:49,也就是:0011 0001
    ~ 二元一元补充运算符是一元的,具有“翻转”位的效果。 ~A的结果为:-61,也就是:1100 0011
    << 二进制左移运算符,左操作数值向左移动右操作数指定的位数。 A << 2的结果为:240,也就是:1111 0000
    >> 二进制右移运算符,左操作数值向右移动右操作数指定的位数。 A >> 2的结果为:15,也就是:1111
    >>> 右移零填充运算符。 左操作数值向右移动右操作数指定的位数,移位值用零填充。 A >>>2的结果为:15,也就是:0000 1111

     

    4. 逻辑运算符

    下表列出了逻辑运算符 -

    假设布尔变量A的值为:true,变量B 的值为:false,则 -

    运算符描述示例
    && 逻辑AND运算符。 如果两个操作数都不为零,则条件成立。 (A && B)结果为:false
    ΙΙ 逻辑OR运算符。 如果两个操作数中的任何一个非零,则条件变为真。 (A ΙΙ B)结果为:true
    ! 逻辑非运算符。用于反转其操作数的逻辑状态。 如果条件为真,则口逻辑NOT运算符将为false !(A && B)结果为:true

     

    5. 赋值运算符

    以下是Java语言支持的赋值运算符 -

    运算符描述示例
    = 简单赋值运算符。 将右侧操作数的值分配给左侧操作数。 C = A + BA + B的值分配给C
    += 相加与赋值运算符。 它将右操作数相加到左操作数并将结果分配给左操作数。 C += A等于C = C + A
    -= 减去与赋值运算符。 它从左操作数中减去右操作数,并将结果赋给左操作数。 C -= A等于C = C - A
    *= 乘以与赋值运算符。 它将右操作数与左操作数相乘,并将结果赋给左操作数。 C *= A等于C = C * A
    /= 除以与赋值运算符。 它将左操作数除以右操作数,并将结果赋给左操作数。 C /= A等于C = C / A
    %= 模数与赋值运算符。 它使用两个操作数来计算获取模数,并将结果赋给左操作数。 C %= A等于C = C % A
    <<= 左移与赋值运算符。 C <<= 2C = C << 2相同
    >>= 右移与赋值运算符。 C >>= 2C = C >> 2相同
    &= 按位与赋值运算符。 C &= 2C = C & 2相同
    ^= 按位异或和赋值运算符。 C ^= 2C = C ^ 2相同
    Ι= 按位包含或与赋值运算符。 C Ι= 2与C = C Ι=2相同

     

    6. 其它运算符

    Java语言支持的其他运算符很少。

    6.1. 条件运算符(?:)

    条件运算符也称为三元运算符。 此运算符由三个操作数组成,用于计算布尔表达式。 运算符的目标是确定应将哪个值赋给变量。 运算符写成 -

    variable x = (expression) ? value if true : value if false
    

      

     

    下面是一段示例代码:

    public class Test {
    
       public static void main(String args[]) {
          int a, b;
          a = 10;
          b = (a == 1) ? 20: 30;
          System.out.println( "Value of b is : " +  b );
    
          b = (a == 10) ? 20: 30;
          System.out.println( "Value of b is : " + b );
       }
    }
    

      

     

    执行上面示例代码,得到以下结果 -

    Value of b is : 30
    Value of b is : 20
    

      

    Shell

    6.2. instanceof运算符
    此运算符仅用于对象引用变量。 运算符检查对象是否属于特定类型(类类型或接口类型)。 instanceof运算符写成 -

    ( Object reference variable ) instanceof  (class/interface type)
    

      

     

    如果操作符左侧的变量引用的对象是右侧的类/接口类型,则结果为真。 以下是一个例子 -

    public class Test {
    
       public static void main(String args[]) {
    
          String name = "Kobe";
    
          // 当 name 的类型是 String 时,则返回为:true
          boolean result = name instanceof String;
          System.out.println( result );
       }
    }
    

      

     

    执行上面示例代码,得到以下结果:

    true
    

      

    Shell

    如果要比较的对象与右侧类型兼容,则此运算符仍将返回true。 以下是另一个例子 -

    class Vehicle {}
    
    public class Car extends Vehicle {
    
       public static void main(String args[]) {
    
          Vehicle a = new Car();
          boolean result =  a instanceof Car;
          System.out.println( result );
       }
    }
    

      

     

    执行上在示例代码,得到以下结果:

    true
    

      

    完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!


    欢迎关注微信公众号:码邦主



  • 相关阅读:
    spark streaming 概述
    spark sql 的性能调优
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal (用中序和后序树遍历来建立二叉树)
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal (用先序和中序树遍历来建立二叉树)
    LeetCode 90. Subsets II (子集合之二)
    LeetCode 88. Merge Sorted Array(合并有序数组)
    LeetCode 81. Search in Rotated Sorted Array II(在旋转有序序列中搜索之二)
    LeetCode 80. Remove Duplicates from Sorted Array II (从有序序列里移除重复项之二)
    LeetCode 79. Word Search(单词搜索)
    LeetCode 78. Subsets(子集合)
  • 原文地址:https://www.cnblogs.com/hehe199316/p/13993005.html
Copyright © 2011-2022 走看看