Java运算符
java中的运算符是用于执行运算(加,减,乘,除等)操作的符号。例如:+, - ,*,/等。Java中有许多类型的运算符,如下所示:
运算符 | 优先级 |
---|---|
一元 | ++, --, +, -,~,! |
乘、除法 | *, /,% |
加、减法 | +, - |
移位 | <<, >>, >>> |
关系 | <, >, <=,>=, instanceof |
相等 | ==, != |
按位与 | & |
按位异或 | ^ |
按位或 | 丨 |
逻辑与 | && |
逻辑或 | 丨丨 |
三元 | ? : |
赋值 | =, +=, -=, *=, /=,%=,&=, ^=, <<=, >>=, >>>=,丨= |
Java一元运算符示例:++ 和 — —
class OperatorExample{
public static void main(String args[]){
int x=10;
System.out.println(x++);//10 (11)
System.out.println(++x);//12
System.out.println(x--);//12 (11)
System.out.println(--x);//10
}
}
输出结果如下:
10
12
12
10
class OperatorExample {
public static void main(String args[]) {
int a = 10;
int b = 10;
System.out.println(a++ + ++a);// 10+12=22
System.out.println(b++ + b++);// 10+11=21
}
}
输出结果
22
21
Java一元运算符示例:〜 和 !
class OperatorExample {
public static void main(String args[]) {
int a = 10;
int b = -10;
boolean c = true;
boolean d = false;
System.out.println(~a);// -11 (minus of total positive value which
// starts from 0)
System.out.println(~b);// 9 (positive of total minus, positive starts
// from 0)
}
}
输出结果:(关于正负数运算的:负数在计算机中的运算)
-11
9
false
true
java的移位运算实例:左移和右移
class OperatorExample {
public static void main(String args[]) {
System.out.println(10 << 2);// 10*2^2=10*4=40 左移1位相当于乘2
System.out.println(10 << 3);// 10*2^3=10*8=80
System.out.println(20 << 2);// 20*2^2=20*4=80
System.out.println(15 << 4);// 15*2^4=15*16=240
System.out.println(10 >> 2);// 10/2^2=10/4=2 右移1位相当于除2
System.out.println(20 >> 2);// 20/2^2=20/4=5
System.out.println(20 >> 3);// 20/2^3=20/8=2
}
}
输出结果
40
80
80
240
java的移位运算实例:>> 和 >>>
class OperatorExample {
public static void main(String args[]) {
// For positive number, >> and >>> works same
System.out.println(20 >> 2); //符号位不位移,相当于符号位不变
System.out.println(20 >>> 2);
// For nagative number, >>> changes parity bit (MSB) to 0
System.out.println(-20 >> 2);
System.out.println(-20 >>> 2); //符号位要位移,符号位自动补零,结果变正数
}
}
Java AND运算符示例:逻辑&&和位&
class OperatorExample {
public static void main(String args[]) {
int a = 10;
int b = 5;
int c = 20;
System.out.println(a < b && a < c); // 第一个条件为false的时候,停止运算第二个条件,提高效率。
System.out.println(a < b & a < c); // 无论第一个条件true还是false,两个都需要执行。
System.out.println(a < b && a++ < c);// false && true = false
System.out.println(a);// 10 、
System.out.println(a < b & a++ < c);// false && true = false
System.out.println(a);// 11
}
}
输出结果:
false
10
false
11
Java 或运算符示例:逻辑|| 和按位 |
class OperatorExample {
public static void main(String args[]) {
int a = 10;
int b = 5;
int c = 20;
System.out.println(a > b || a < c);// true || true = true //一个为真,停止运算第二个条件,高效率
System.out.println(a > b | a < c);// true | true = true //无论第一个执行的如何,都需要执行完两个条件
// || vs |
System.out.println(a > b || a++ < c);// true || true = true
System.out.println(a);// 10 because second condition is not checked
System.out.println(a > b | a++ < c);// true | true = true
System.out.println(a);// 11 because second condition is checked
}
}
输出结果
true
true
true
10
true
11
三元运算符
class OperatorExample {
public static void main(String args[]) {
int a = 2;
int b = 5;
int min = (a < b) ? a : b; //if true,min = a,else min =b;
System.out.println(min);
}
}
输出结果
2
Java分配运算符示例
class OperatorExample {
public static void main(String args[]) {
int a = 10;
int b = 20;
a += 4;// a=a+4 (a=10+4)
b -= 4;// b=b-4 (b=20-4)
System.out.println(a);
System.out.println(b);
}
}
输出结果:
14
16
Java分配运算符示例:相加short类型数据
class OperatorExample {
public static void main(String args[]) {
short a = 10;
short b = 10;
a = a + b;// 编译时错误,因为 10+10=20 现在是 int 类型
a += b; //没问题,+= 一元运算符,相当于赋值
System.out.println(a);
}
}
输出结果:
编译时错误....
class OperatorExample {
public static void main(String args[]) {
short a = 10;
short b = 10;
a = (short) (a + b);// 20 which is int now converted to short
System.out.println(a);
}
}
输出结果:
20