亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 核心运算符全面指南

Java 提供丰富运算符操作变量。可将所有 Java 运算符分为以下组:

算术运算符

算术运算符用于数学表达式,用法同代数。假设整数变量 A=10,B=20,则:

运算符描述示例
+ (加法)将运算符两侧值相加A + B 得 30
- (减法)左操作数减右操作数A - B 得 -10
* (乘法)两侧值相乘A * B 得 200
/ (除法)左操作数除右操作数B / A 得 2
% (取模)左操作数除右操作数返回余数B % A 得 0
++ (自增)操作数值加 1B++ 得 21
-- (自减)操作数值减 1B-- 得 19

关系运算符

Java 支持以下关系运算符。假设 A=10,B=20:

运算符描述示例
== (等于)检查两操作数值是否相等,相等则条件为真(A == B) 不为真
!= (不等于)检查两操作数值是否相等,不等则条件为真(A != B) 为真
> (大于)检查左操作数是否大于右操作数,是则条件为真(A > B) 不为真
< (小于)检查左操作数是否小于右操作数,是则条件为真(A < B) 为真
>= (大于等于)检查左操作数是否大于等于右操作数,是则条件为真(A >= B) 不为真
<= (小于等于)检查左操作数是否小于等于右操作数,是则条件为真(A <= B) 为真

位运算符

Java 定义位运算符,可应用于 long、int、short、char、byte 等整数类型。位运算符按位操作。假设 a=60,b=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)
^ (按位异或)二进制 XOR:位在一操作数设置但不在两者中则复制(A ^ B) 得 49 (0011 0001)
~ (按位取反)二进制一补数:一元运算符,翻转位(~A) 得 -61 (1100 0011,补码形式)
<< (左移)左操作数值左移右操作数指定位数A << 2 得 240 (1111 0000)
>> (右移)左操作数值右移右操作数指定位数A >> 2 得 15 (1111)
>>> (无符号右移)右移并用零填充A >>>2 得 15 (0000 1111)

逻辑运算符

假设布尔变量 A=true,B=false:

运算符描述示例
&& (逻辑与)逻辑 AND:两操作数均非零则条件为真(A && B) 为 false
|| (逻辑或)逻辑 OR:任一操作数非零则条件为真(A || B) 为 true
! (逻辑非)逻辑 NOT:反转操作数逻辑状态。条件为真则变假!(A && B) 为 true

赋值运算符

运算符描述示例
=简单赋值:将右操作数值赋给左操作数C = A + B 将 A+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 <<= 2 等价于 C = C << 2
>>=右移且赋值C >>= 2 等价于 C = C >> 2
&=按位与且赋值C &= 2 等价于 C = C & 2
^=按位异或且赋值C ^= 2 等价于 C = C ^ 2
|=按位或且赋值C |= 2 等价于 C = C | 2

其他运算符

条件运算符 ( ? : )

条件运算符即 三元运算符。包含三个操作数,用于评估布尔表达式。目标是决定变量赋何值。写法:

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

示例:

Live Demo
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

instanceof 运算符

仅用于对象引用变量。检查对象是否为特定类型(类或接口类型)。写法:

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

若左侧变量引用的对象通过右侧类/接口类型的 IS-A 检查,结果为 true。示例:

Live Demo
public class Test { 
  public static void main(String args[]) { 
    String name = "James"; 
    boolean result = name instanceof String; 
    System.out.println( result ); 
  } 
}

输出:

true

若被比较对象与右侧类型赋值兼容,仍返回 true。另例:

Live Demo
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 运算符优先级

运算符优先级决定表达式中项的分组,影响求值顺序。某些运算符优先级更高,如乘法高于加法。

例:x = 7 + 3 * 2;x 赋值为 13 而非 20,因 * 优先于 +,先算 3*2 再加 7。

下表优先级从高到低。表达式中高优先级运算符优先求值。

类别运算符结合性
后缀expression++ expression--左到右
一元++expression –-expression +expression –expression ~ !右到左
乘性* / %左到右
加性+ -左到右
移位<< >> >>>左到右
关系< > <= >= instanceof左到右
相等== !=左到右
按位与&左到右
按位异或^左到右
按位或|左到右
逻辑与&&左到右
逻辑或||左到右
条件?:右到左
赋值= += -= *= /= %= ^= |= <<= >>= >>>=右到左

下一步

下章将讲解 Java 循环控制。描述各种循环类型及其在程序开发中的用途。


java

  1. 精通 Java 运算符:类型、语法与实战示例
  2. 精通 Java 输入输出:打印、读取与格式化数据
  3. Java 注释:类型、用法与最佳实践
  4. 精通 Java 增强 for 循环:语法、示例与最佳实践
  5. 精通 Java 字符串:创建、方法与最佳实践
  6. 精通 Java 接口:概念、实现与最佳实践
  7. 精通 Java 匿名内部类:定义、语法与实战示例
  8. 精通 Java Try-With-Resources:自动资源管理详解
  9. Java 注解详解:类型、放置位置与实战示例
  10. Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
  11. 深入理解 Java Vector:用法、特性及与 ArrayList 的对比
  12. Java 基础:掌握基本语法