Java运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。
Java把运算符分成以下几组:算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、其他运算符等。
算术运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样,下表列出了所有的算术运算符。表格中的实例假设整数变量A的值为10,变量B的值为20。
注意:+加法运算符,也可做字符的连接用途。
自增自减运算符
自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自,增自减运算符是一个操作数。
自增自减运算符包括两种:
前缀自增自减法(++a,--a):先进行自增或者自减运算,再进行表达式运算。
a=3;
b=++a;
运行结果:
b=4,a=4
后缀自增自减法(a++,a--):先进行表达式运算,再进行自增或者自减运算
a=3;
b=a++;
运行结果:
b=3,a=4
关系运算符
关系运算符描述的是一种关系,既然描述的是关系,那结果就为对或不对,在Java里就表示为真或假。
表格中的实例整数变量A的值为10,变量B的值为20。
位运算符
所谓位运算符,就是将操作数转换成二进制,然后按位进行比较,位运算符包括:
“&”:按位与运算符。
“|”:按位或运算符。
“^”:按位异或运算符。
位移运算符
所谓位移运算符,和逻辑运算符一样,都是对表达式进行比较的,位运算符是先把要比较的操作数转换成二进制数,然后向右向左移动相应的位数。位移运算符包括:
>>:带符号右移
右移运算符“>>”是把操作数转换成二进制数,向右移动指定的位数,右移运算符是有符号的,如果为正数就补0,如果为负数就补1。
<<:带符号左移
左移运算符“<<”是把操作数转换成二进制数,向左移动指定的位数,左移运算符是有符号的,如果为正数就补0,如果为负数就补1。
>>>:无符号右移。
无符号右移运算符“>>>”是把操作数转换成二进制数,向右移动指定的位数,无符号右移运算符全在最高位上补0。
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型,位运算符作用在所有的位上,并且按位运算。
下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13。
逻辑运算符
逻辑运算符其实就是比较的二进制数的逻辑关系,运算结果为true、false。逻辑运算符包括如下:
与运算符:“&&”。
或运算符:“||”。
非运算符:“!”。
下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假。
短路逻辑运算符
当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
赋值运算符
赋值运算符包括一般赋值运算符、运算赋值运算符。
1、一般运算符使用“=”,在编写代码里最常见,也是很容易理解的。
2、运算赋值运算符和一般赋值运算符很相似,也是赋值用的,但它具有运算的功能。
Java中常用的赋值运算符:
条件运算符(?:)
也称为三元运算符,该运算符有3个操作数,并且需要判断布尔表达式的值,该运算符的主要是决定哪个值应该赋值给变量。
所谓三元运算符:是对三个表达式进行的集中比较,表达式1的结果为true时,就为第二个表达式,如果为false时,就为第三个表达式。语法是:
表达式1?表达式2:表达式3
instanceof运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型),instanceof运算符使用格式如下:
(Object reference variable ) instanceof (class/interface type)
1、如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
2、如果被比较的对象兼容于右侧类型,该运算符仍然返回true。
运算符的优先级
运算符的运算优先级是有一定的顺序的,括号拥有最高的优先级,接下来是一元运算符,最后是二元运算符,如表所示。
下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。