Java Operator 指南

通过示例了解可用的Java Operator 优先级顺序并了解其用法。我们还将尝试了解何时使用哪个 Operator 以及期望得到什么。

目录

1.什么是 Operator ?
2.赋值 Operator (=)
3.算术 Operator 
    3.1。一元算术 Operator 
    3.2。二进制算术 Operator 
4.字符串连接 Operator (+)
5.关系 Operator 
6.布尔逻辑 Operator 
7.按位 Operator 
8.三元 Operator (?:) 
9. Java Operator 优先级表

1.什么是 Operator ?

Operator 是对一个,两个或三个操作数执行特定类型的运算并产生结果的符号。 Operator 及其操作数的类型确定对操作数执行的运算的类型以及产生的结果的类型。

1.1。Java Operator 的分类

Java中的 Operator 可以根据两个条件进行分类:

  • 操作数的数量–根据操作数的数量,共有三种类型的 Operator 。根据操作数的数量, Operator 称为一元,二进制或三元 Operator 。如果一个 Operator 采用一个操作数,则称为一元 Operator ;如果需要两个操作数,则称为二进制 Operator ;如果需要三个操作数,则称为三元 Operator
  • 它们执行的操作类型 – Operator 称为算术 Operator 关系 Operator 逻辑 Operator 按位 Operator ,具体取决于 Operator 在其操作数上执行的类型。

2.赋值 Operator (=)

  • 赋值 Operator (=)用于为变量赋值。
  • 它是一个二进制 Operator 。它需要两个操作数。
  • 右侧操作数的值已分配给左侧操作数。
  • 左侧操作数必须是变量。
赋值 Operator 示例
//26 is the right-hand operand.
//counter is the left-hand operand, which is a variable of type int.
int counter = 26;

Java确保赋值 Operator 的右侧操作数的值与左侧操作数的数据类型兼容。否则,将发生编译时错误。如果是引用变量,ClassCastException则如果右侧操作数表示的对象与作为左侧操作数的参考变量不兼容,则可以编译源代码并获得运行时错误。

3.算术 Operator

  • 像(+(加号),(减号),*(乘数),/(除法))之类的 Operator 在Java中称为算术 Operator 。
  • 它只能与数字类型的操作数一起使用。这意味着,这两个操作数的算术 Operator 必须是一个类型byteshortcharintlongfloat,和double
  • 这些 Operator 不能具有boolean基本类型和引用类型的操作数。
算术 Operator 示例
int sum = 10 + 20;
int difference = 50 - 20;
long area = 20l * 30l;   
int percentage = 20 / 100;

3.1。一元算术 Operator

Operator 描述
'+' 一元加 Operator  ; 表示正值(没有此数字,则为正)
'-' 一元负算子 ; 取反表达式值
'++' 增量 Operator  ; 将值增加1
'--' 递减 Operator  ; 将值减1
'!' 逻辑补算子 ; 反转布尔值

3.2。二元算术 Operator

Operator 描述
'+' 加法 -在 Operator 的任一侧添加值
'-' 减法 –从左手操作数中减去右手操作数
'*' 乘法 –将 Operator 两侧的值相乘
'/' 除法 –将左操作数除以右操作数
'%' 模数 –将左操作数除以右操作数并返回余数

4.字符串串联 Operator (+)

'+'操作是用Java超载。如果一个运算用于执行多个功能,则称该 Operator 为重载 Operator

4.1。连接两个字符串

到目前为止,您已经看到它用作算术加法 Operator 来将两个数字相加。它也可以用来连接两个字符串

字符串串联示例
String str1 = "Hello";
String str2 = " World";
String str3 = str1 + str2;      // Assigns "Hello World" to str3

3.2。将原语连接到字符串

字符串连接 Operator 还用于将原语和参考数据类型值连接到字符串。

字符串与原始连接
int num = 26;
String str1 = "Alphabets";
String str2 = num + str1;    // Assigns "26Alphabets" to str2

4.2。串联null

如果引用变量包含“空”引用,则串联 Operator 将使用字符串“空”。

字符串连接为空
String str1 = "I am ";
String str2 = null;
String str3 = str1 + str2;    // Assigns "I am null" to str3

5.关系 Operator

  • 所有关系 Operator 都是二进制 Operator 。
  • 他们采用两个操作数。
  • 关系 Operator 产生的结果始终是布尔值truefalse
  • 它们主要用于Java控制语句中,例如if语句while语句等。

下面让我们看看java中所有可用的关系 Operator 。

Operator 描述
'==' 等于 –检查两个操作数的值是否相等,如果是,则条件为true。
'!=' 不等于 –检查两个操作数的值是否相等,如果值不相等,则条件为true。
'>' 大于 –检查左操作数的值是否大于右操作数的值,如果是,则条件为true。
'<' 小于 –检查左操作数的值是否小于右操作数的值,如果是,则条件为true。
'>=' 大于或等于 –检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为true。
'<=' 小于或等于 –检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为true。
关系 Operator 示例
int result = 20;
        
if( result > 10) {                  //true
    //some operation
}
boolean isEqual = ( 10 == 20 );     //false

6.布尔逻辑 Operator

  • 所有布尔逻辑 Operator 只能与布尔操作数一起使用。
  • 它们主要用于控制语句中以比较两个(或多个)条件。
Operator 描述
'!' 如果操作数为false,则返回true;如果操作数为true,则返回false。
'&&' 如果两个操作数均为true,则返回true。如果任一操作数为false,则返回false。
'&' 如果两个操作数均为true,则返回true。如果任一操作数为false,则返回false。
'||' 如果任一操作数为true,则返回true。如果两个操作数均为false,则返回false。
'|' 如果任一操作数为true,则返回true。如果两个操作数均为false,则返回false。
'^' 如果其中一个操作数为true,则返回true,但不是两个都为true。如果两个操作数相同,则返回false。
'&=;' 如果两个操作数都为true,则&=返回true。否则,它返回false。
'|=' 如果任一操作数的结果为true,则!=返回true。否则,它返回false。
'^=' 如果两个操作数的求值均不同,即其中一个操作数为true,但不是两个都为真,则^ =返回true。否则,它返回false。
布尔逻辑 Operator 示例
int result = 20;
        
if( result > 10 && result < 30) {     
    //some operation
}
if( result > 10 || result < 30) {     
    //some operation
}
  1. 逻辑AND Operator (&)的工作方式作为逻辑短路AND Operator (&&)相同,除了一个差。逻辑AND Operator (&)会计算其右手操作数,即使其左手操作数的计算结果为false。
  2. 逻辑或 Operator 的工作方式与逻辑短路或运算相同,但有一个区别。逻辑“或” Operator 将评估其右侧操作数,即使其左侧操作数的评估结果为true。

7.按位 Operator

按位 Operator 可操纵其操作数的各个位。Java定义了几个按位 Operator ,它们可以应用于整数类型long,int,short,char和byte。

Operator 描述
'&' 如果两个操作数中都存在二进制AND Operator ,则会将一位复制到结果中。
'|' 如果任一操作数中存在二进制或 Operator ,则会对其进行复制。
'^' 如果在一个操作数中设置了该位,但不是在两个操作数中都设置了位,则二进制XOR Operator 将复制该位。
'~' 二进制补码 Operator 是一元的,具有“翻转”位的作用。
<< 二元左移位算子。左操作数的值向左移动右操作数指定的位数。
>> 二元右移算子。左操作数的值向右移动右操作数指定的位数。
>>> 右移零填充 Operator 。左操作数的值向右移动右操作数指定的位数,并且移位后的值用零填充。

8.三元 Operator (?

 

  • Java有一个条件 Operator 。它被称为三元 Operator ,因为它需要三个操作数
  • “?”和“:”这两个符号构成三元 Operator 。
  • 如果boolean-expression的计算结果为true,则计算为true。否则,它将评估错误表达式。

 

8.1。句法

句法
boolean-expression ? true-expression : false-expression

8.2。三元 Operator 示例

int number1 = 40;
int number2 = 20;
int biggerNumber = (number1 > number2) ? number1 : number2;
//Compares both numbers and return which one is bigger

9. Java Operator 优先级表

Java具有明确定义的规则,用于指定当表达式具有多个 Operator 时对表达式中的 Operator 求值的顺序。例如,乘法和除法的优先级高于加法和减法。

优先规则可以由显式括号覆盖。

当两个 Operator 共享一个操作数时,优先级较高的 Operator 优先。例如,1 + 2 * 3被视为1 + (2 * 3)因为乘法的优先级高于加法。

在上面的表达式中,如果要首先添加值,请使用显式括号-这样(1 + 2) * 3

优先顺序 Operator 类型 关联性
15 ()
[]
·
括号
数组下标
成员选择
左到右
14 ++

元后递减一元后递减
右到左
13 ++

+



类型
一元预增
一元预减
一元加
一元减
一元逻辑求反
一元按位补码
一元类型强制转换
右到左
12 *
/
乘法
除法
模量
左到右
11 +
此外
减法
左到右
10 <<
>>
>>>

位左移带符号扩展的
按位右移带零扩展的按位右移
左到右
9 <
<=
>
> =
的instanceof
关系小于
关系小于或等于
关系大于大于
关系大于或等于
类型比较(仅对象)
左到右
8 ==
!=
关系
不等于关系不等于
左到右
7 按位与 左到右
6 ^ 按位异或 左到右
5 | 按位或 左到右
4 && 逻辑与 左到右
3 || 逻辑或 左到右
2 ?: 三元条件 右到左
1个 =
+ =
-=
* =
/ =
%=
分配
加法分配
减法分配
乘法分配
除法分配
模数分配
右到左

这就是java中 Operator

学习愉快!

saigon has written 1440 articles

Leave a Reply