Java的运算符可分为4类:算术运算符、关系运算符、逻辑运算符和位运算符。
算术运算符
Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。
1、一元运算符:
一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。
加1、减1运算符只允许用于数值类型的变量,不允许用于表达式中。加1、减1运算符既可放在变量之前(如++i),也可放在变量之后(如i++),两者的差别是:如果放在变量之前(如++i),则变量值先加1或减1,然后进行其他相应的操作(主要是赋值操作);如果放在变量之后(如i++),则先进行其他相应的操作,然后再进行变量值加1或减1。
例如:
2、二元运算符
二元运算符有:加(+)、减(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、减、乘、除四则运算,%是求两个操作数相除后的余数。
%求余操作举例:
当两个操作数都是int类型数时,a%b的计算公式为:
当参加二元运算的两个操作数的数据类型不同时,所得结果的数据类型与精度较高(或位数更长)的那种数据类型一致。
关系运算符
关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值。关系运算符有六个:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(
9
9.9>=8.8//运算结果为true
'A'
要说明的是,对于大于等于(或小于等于)关系运算符来说,只有大于和等于两种关系运算都不成立时其结果值才为false,只要有一种(大于或等于)关系运算成立其结果值即为true。例如,对于9=9,因9等于9,所以9>=9的运算结果为true。
逻辑运算符
逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:逻辑与(&&)、逻辑或(||)、逻辑非(!)、逻辑异或(^)、逻辑与(&)、逻辑或(|)。
真值表是表示逻辑运算功能的一种直观方法,其具体方法是把逻辑运算的所有可能值用表格形式全部罗列出来。Java语言逻辑运算符的真值表如下:
逻辑运算符的真值表
ABA&&BA||B!AA^BA&BA|B
falsefalsefalsefalsetruefalsefalsefalse
truefalsefalsetruefalsetruefalsetrue
falsetruefalsetruetruetruefalsetrue
truetruetruetruefalsefalsetruetrue
前两列是参与逻辑运算的两个逻辑变量,共有4种可能,所以表2.5共有4行。后6列分别是6个逻辑运算符在逻辑变量A和逻辑变量B取不同数值时的运算结果值。
要说明的是,两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。其区别是:&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;对于||运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。所以,系统一旦判断出||运算符左端的值为true,则系统将终止其后的计算过程。
例如,有如下逻辑表达式:
2、右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。例如,对于如下程序段:
对于如下程序段:
3、0填充的右移(>>>)是不论被移动数是正数还是负数,左边移进的部分一律补0。
其他运算符
1、赋值运算符与其他运算符的简捷使用方式
赋值运算符可以与二元算术运算符、逻辑运算符和位运算符组合成简捷运算符,从而可以简化一些常用表达式的书写。
赋值运算符与其他运算符的简捷使用方式
运算符用法等价于说明
+=s+=is=s+is,i是数值型
-=s-=is=s-is,i是数值型
*=s*=is=s*is,i是数值型
/=s/=is=s/is,i是数值型
%=s%=is=s%is,i是数值型
&=a&=ba=a&ba,b是逻辑型或整型
|=a|=ba=a|ba,b是逻辑型或整型
^=A^=ba=a^ba,b是逻辑型或整型
>>=s>>=is=s>>is,i是整型
>>>=s>>>=is=s>>>is,i是整型
2、方括号[]和圆括号()运算符
方括号[]是数组运算符,方括号[]中的数值是数组的下标,整个表达式就代表数组中该下标所在位置的元素值。
圆括号()运算符用于改变表达式中运算符的优先级。
3、字符串加(+)运算符
当操作数是字符串时,加(+)运算符用来合并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机器将自动将数值转换为字符串,这种情况在输出语句中很常见。如对于如下程序段:
4、条件运算符(?:)
条件运算符(?:)的语法形式为:
强制类型转换符能将一个表达式的类型强制转换为某一指定数据类型,其语法形式为:
对象运算符instanceof用来测试一个指定对象是否是指定类(或它的子类)的实例,若是则返回true,否则返回false。
7、点运算符
点运算符“.”的功能有两个:一是引用类中成员,二是指示包的层次等级。
运算符的优先级
以下按优先级从高到低的次序列出Java语言中的所有运算符,表中结合性一列中的“左右”表示其运算次序为从左向右,“右左”表示其运算次序为从右向左。
优先级运算符结合性
1.[]();,
2++――+=!~+(一元)-(一元)右左
3*/%左右
4+(二元)-(二元)左右
5>>>>左右
6=instanceof左右
7==!=左右
8&左右
9^左右
10|左右
11&&左右
12||左右
13:右左
14=*=/=%=+=-=>=>>>=&=^=|=右左
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!