
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java 的基本操作符有哪些?Java提供了一组丰富的操作符来操作变量。我们可以把所有的Java运算符分成以下几组 -
算术运算符
关系运算符
按位运算符
逻辑运算符
赋值运算符
杂项运营商
算术运算符
算术运算符在数学表达式中的使用方式与在代数中使用的方式相同。下表列出了算术运算符
假设整数变量A保持10,变量B保存20,则 -
操作者 描述 例
+(加法) 在操作员的两侧添加值。 A + B会给30
- (减法) 从左侧的操作数中减去右侧的操作数。 A - B会给-10
*(乘法) 将运算符两侧的值相乘。 A * B会给200
/(部门) 左手操作数除以右手操作数。 B / A会给2
%(模量) 用左边的操作数分割左边的操作数并返回余数。 B%A会给0
++(增量) 操作数的值增加1。 B ++给出21
- (减量) 将操作数的值减1。 B--给出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)将会给出00001100
| (按位或) 二进制或运算符复制一个位,如果它存在于任一操作数。 (A | B)会给61,即0011 1101
^(按位异或) 如果二进制XOR运算符被设置在一个操作数中,但它们不能同时被复制。 (A ^ B)将会给出49这是0011 0001
〜(按位恭维) 二进制补码运算符是一元运算符,具有“翻转”位的作用。 (〜A)由于带符号的二进制数而给出了-61,其二进制补码形式是1100 0011。
<<(左移) 二进制左移运算符。左操作数值左移了右操作数指定的位数。 一个<< 2将会得到240,即1111 0000
>>(右移) 二进制右移运算符。左操作数值右移右操作数指定的位数。 一个>> 2将会给出15个1111
>>>(零填充右移) 右移零填充操作符。左操作数值右移右操作数指定的位数,移位值填充零。 A >>> 2将给出15,这是0000 1111
逻辑运算符
下表列出了逻辑运算符 -
假设布尔变量A为真,变量B为假,则 -
操作者 描述 例
&&(逻辑和) 称为逻辑AND运算符。如果两个操作数都不为零,则条件成立。 (A && B)是错误的
|| (逻辑或) 称为逻辑OR运算符。如果两个操作数中的任何一个都不为零,则条件成立。 (A || B)是真的
!(逻辑不) 称为逻辑NOT运算符。用于反转其操作数的逻辑状态。如果条件成立,那么逻辑NOT运算符将会成为假。 (A && B)是真的
作业操作员
以下是Java语言支持的赋值运算符 -
操作者 描述 例
= 简单的赋值运算符 将右侧操作数的值赋给左侧操作数。 C = A + B将把A + B的值赋值给C
+ = 添加AND赋值运算符。它将右操作数添加到左操作数,并将结果分配给左操作数。 C + = A相当于C = C + A
- = 减去AND赋值运算符。它从左操作数中减去右操作数,并将结果赋给左操作数。 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相同
| = 按位包含OR和赋值运算符。 C | = 2与C = C |相同 2
其他操作员
Java语言支持的其他运算符很少。
条件运算符(?:)
条件运算符也被称为三元运算符。该运算符由三个操作数组成,用于评估布尔表达式。运营商的目标是决定应将哪个值分配给变量。操作员被写为 -
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
instanceof运算符
该运算符仅用于对象引用变量。运算符检查对象是否是特定类型(类类型或接口类型)。instanceof运算符写成 -
( Object reference variable ) instanceof (class/interface type)
如果操作符左侧的变量引用的对象通过右侧的类/接口类型的IS-A检查,则结果为true。以下是一个例子 -
例
public class Test {
public static void main(String args[]) {
String name = "James";
// following will return true since name is type of String
boolean result = name instanceof String;
System.out.println( result );
}
}
这将产生以下结果 -
产量
true
如果被比较的对象是与右侧类型兼容的分配,则此运算符仍将返回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运算符的优先级
运算符优先级决定表达式中术语的分组。这会影响表达式的评估方式。某些运营商的优先级高于其他运营商; 例如,乘法运算符比加法运算符具有更高的优先级 -
例如,x = 7 + 3 * 2; 这里x被赋值为13,而不是20,因为运算符*的优先级高于+,所以它先乘以3 * 2然后加入7。
在这里,优先级最高的操作符出现在表顶部,最低优先级的操作符出现在底部。在表达式中,更高优先级的运算符将首先被评估。
类别 操作者 关联性
后缀 >()[]。(点运算符) 左到右
一元 > ++ - - !〜 右到左
乘 > * / 左到右
添加剂 > + - 左到右
转移 >>> >>> << 左到右
相关的 >>> = <<= 左到右
平等 > ==!= 左到右
按位与 >& 左到右
按位XOR > ^ 左到右
按位或 > | 左到右
逻辑与 > && 左到右
逻辑或 > || 左到右
条件 ? 右到左
分配 > = + = - = * = / =%= >> = << =&= ^ = | = 右到左