运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
Java也提供了一套丰富的运算符来操纵变量,可以把运算符分成以下几组:
算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符 和 其他运算符
注意:java会根据运算符的精度类型进行自动类型转换
一、算术运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。
表格中的实例假设整数变量A的值为10,变量B的值为20:
注意:自增自减运算符
1. 自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行
运算,而自增自减运算符是一个操作数。
2. 前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
3.后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算。
示例:
int a0 = 1;
int b0 = ++a0;//自增运算
int c0 = 1;
int d0 = --c0;//自减运算
System.out.println("进行自增运算后的值等于" + b0);
System.out.println("进行自减运算后的值等于" + d0);
a0 = 5;
b0 = 5;
int x0 = 2 * ++a0;
int y0 = 2 * b0++;
System.out.println("自增运算符前缀运算后a = " + a0 + ", x = " + x0);
System.out.println("自增运算符后缀运算后b = " + b0 + ", y = " + y0);
结果:
进行自增运算后的值等于2
进行自减运算后的值等于0
自增运算符前缀运算后a = 6, x = 12
自增运算符后缀运算后b = 6, y = 10
二、关系运算符
关系运算符主要用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )
表格中的实例整数变量A的值为10,变量B的值为20:
示例:
int xo = 1;
int yo = 2;
System.out.println("xo == yo = " + (xo == yo) );
System.out.println("xo != yo = " + (xo != yo) );
System.out.println("xo > yo = " + (xo > yo) );
System.out.println("xo < yo = " + (xo < yo) );
System.out.println("xo >= yo = " + (xo >= yo) );
System.out.println("xo <= yo = " + (xo <= yo) );
结果:
xo == yo = false
xo != yo = true
xo > yo = false
xo < yo = true
xo >= yo = false
xo <= yo = true
三、位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char)和字节型 (byte)等类型。
位运算符作用在所有的位上,并且按位运算。
假设a = 60,b = 13;它们的二进制格式表示将如下:
示例:
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
System.out.println("a & b = " + c );
c = a | b; /* 61 = 0011 1101 */
System.out.println("a | b = " + c );
c = a ^ b; /* 49 = 0011 0001 */
System.out.println("a ^ b = " + c );
c = ~a; /*-61 = 1100 0011 */
System.out.println("~a = " + c );
c = a << 2; /* 240 = 1111 0000 */
System.out.println("a << 2 = " + c );
c = a >> 2; /* 15 = 1111 */
System.out.println("a >> 2 = " + c );
c = a >>> 2; /* 15 = 0000 1111 */
System.out.println("a >>> 2 = " + c );
结果:
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2 = 15
a >>> 2 = 15
四、逻辑运算符
辑运算符主要用于进行逻辑运算。Java 中常用的逻辑运算符如下表所示(假设布尔变量A为真,变量B为假):
五、赋值运算符
赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。下面是Java语言支持的赋值运算符:
六、其他运算符
1.条件运算符
条件运算符( ? : )也称为 “三元运算符”。
语法形式:布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
示例:
int xo = 1;
int yo = 2;
int zo = 3;
System.out.println(xo == yo ? yo : zo);
结果:
3
2.instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
语法形式:( Object reference variable ) instanceof (class/interface type)
示例:
Integer xo = 1;
System.out.println(xo instanceof Integer);
结果:
true
七、Java运算符优先级
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级,最低优先级的在表的底部如下表所示: