计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、其他运算符。
1.算术运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。+、-、*、/、%、++、--
注意:
前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 实例:
public class selfAddMinus{
public static void main(String[] args){
int a = 5;//定义一个变量;
int b = 5;
int x = 2*++a;
int y = 2*b++;
System.out.println("自增运算符前缀运算后a="+a+",x="+x);
System.out.println("自增运算符后缀运算后b="+b+",y="+y);
}
}
自增运算符前缀运算后a=6,x=12
自增运算符后缀运算后b=6,y=10
2.关系运算符
== 、!= 、> 、< 、>= 、<=
3.位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(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
&(与运算):只要有一个为0,就为0
|(或运算): 只要有一个为1,就为1
^(亦或运算):相同的为0,不同的为1
〜(取反):0变成1,1变成0。
<<(按位左移):左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>>(按位右移):左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111
>>>(无符号右移):符号右移,忽略符号位,空位都以0补齐
4.逻辑运算符
&&(逻辑与):全真为真
||(逻辑或):有真为真
!(逻辑非):取反
5.赋值运算符
= 、 += 、 -= 、 *= 、 /= 、 %= 、 <<= 、 >>= 、 &= 、 ^= 、 |=
6.条件运算符(?:)
b = (a) ? 20 : 30; //如果a为真侧b为20,否则b为30
7.instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
//语法:(对象) instanceof (类类型或接口类型)
NSString name = @"test";
boolean result = name instanceof NSString; //result为真
注意:子类是父类的类型,但父类不是子类的类型。子类的实例可以声明为父类型,但父类的实例不能声明为子类型。
8. 运算符优先级
下表是运算符的优先级是按从上到下一次降低的:
运算符优先级
网友评论