java operators_Java Basic Operators

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

> =(大于或等于)

检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成为真。

(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运算符存在于两个操作数中,则二进制AND运算符将对结果复制一位。

(A和B)将给出12是0000 1100

|(按位或)

二进制OR运算符如果存在于任一操作数中,则复制一位。

(A | B)将给出61,其为0011 1101

^(按位异或)

二进制XOR操作符复制该位,如果它设置在一个操作数中,而不是两者。

(A ^ B)将给出49,其为0011 0001

〜(按位称赞)

二进制补码运算符是一元的,具有“翻转”位的作用。

(〜A)将给出-61,由于有符号的二进制数,它是2 0的补码形式的1100 0011。

<

二进制左移操作符。左操作数值左移由右操作数指定的位数。

A << 2将给出240是1111 0000

>>(右移)

二进制右移操作符。左操作数值被右操作数指定的位移动。

A >> 2将给出15是1111

>>>(零填补右移)

右移零填充操作符。左操作数值右移由右操作数指定的位数,移位值用零填充。

A >>> 2将给出15是0000 1111

逻辑运算符

下表列出了逻辑运算符 -

假设布尔变量A为真,变量B为假,则 -

操作符

描述

&&(逻辑和)

称为逻辑AND运算符。如果两个操作数都不为零,则条件成立。

(A && B)是假的

||(逻辑或)

称为逻辑或运算符。如果两个操作数中的任何一个非零,则条件成立。

(A || B)是真的

!(逻辑不)

称为逻辑非运算符。用于反转其操作数的逻辑状态。如果条件为真,则逻辑NOT运算符将为false。

!(A && B)是真的

作业人员

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

操作符

描述

=

简单赋值运算符。将右侧操作数的值分配给左侧操作数。

C = A + B将A的值分配给C

+ =

添加AND赋值运算符。它将右操作数添加到左操作数,并将结果分配给左操作数。

C + = A等价于C = C + A

- =

减去AND赋值运算符。它从左操作数中减去右操作数,并将结果分配给左操作数。

C - = A等价于C = C-A

* =

乘以AND赋值运算符。它将右操作数与左操作数相乘,并将结果分配给左操作数。

C * = A等价于C = C * A

/ =

除以AND赋值运算符。它将左操作数与右操作数分开,并将结果分配给左操作数。

C / = A等价于C = C / A

%=

模数和赋值运算符。它需要使用两个操作数的模数,并将结果分配给左操作数。

C%= A等价于C = C%A

<< =

左移和赋值运算符。

C << = 2与C = C << 2相同

>> =

右移和赋值运算符。

C >> = 2与C = C >> 2相同

&=

按位AND赋值运算符。

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

以下是一个例子 -

publicclassTest{publicstaticvoidmain(Stringargs[]){inta,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检查,则结果将为真。以下是一个例子 -

publicclassTest{publicstaticvoidmain(Stringargs[]){Stringname="James";// following will return true since name is type of Stringbooleanresult=nameinstanceofString;System.out.println(result);}}

输出结果如下 -

输出

true

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

classVehicle{}publicclassCarextendsVehicle{publicstaticvoidmain(Stringargs[]){Vehiclea=newCar();booleanresult=ainstanceofCar;System.out.println(result);}}

输出结果如下 -

输出

true

Java运算符的优先级

运算符优先级决定表达式中术语的分组。这会影响表达式的评估。某些运算符的优先级高于其他运算符;例如,乘法运算符的优先级高于加法运算符 -

例如,x = 7 + 3 * 2;这里x被分配13,而不是20,因为operator *的优先级高于+,所以它首先被乘以3 * 2,然后加到7中。

这里,优先级最高的运算符出现在表的顶部,最底层的运算符出现在底部。在一个表达式中,先优先级较高的算子。

类别

操作符

关联性

后缀

>()[]。(点运算符)

左到右

一元

> ++ - - !〜

右到左

乘法

> * /

左到右

添加剂

> + -

左到右

转移

>>> >>> <<

左到右

关系型

>>> = <<=

左到右

平等

> ==!=

左到右

按位AND

>&

左到右

按位XOR

> ^

左到右

按位OR

> |

左到右

逻辑与

> &&

左到右

逻辑或

> ||

左到右

有条件的

?:

右到左

分配

> = + = - = * = / =%= >> = << =&= ^ = | =

右到左

下一步是什么?

下一章将介绍Java编程中的循环控制。本章将介绍各种类型的循环,以及如何在Java程序开发中使用这些循环以及它们正在使用的目的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值