前言:
Java中运算符有哪些?
大致分为:
算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符、条件运算符
接下来,一一分析。
算术运算符:
基本运算符:
加减乘除,是最基本的运算符。
例子:
public static void main(String[] args) {
int a = 2;
int b = 5;
int c = a*b;
int d = a+b;
int e = b/a;
int f = a-b;
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
}
两个字符串相加,就相当于将两个字符串拼接在一起!
例如:
public static void main(String[] args) {
String a = "hello";
String b = "world";
System.out.println(a+" "+b);
}
如果两侧的操作数不一致,向类型大的提升!
System.out.println(1+0.2); // +的左侧是int,右侧是double,在加之前int被提升为double
增量运算符:
该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。
int a = 1 ;a += 2 ; // 相当于 a = a + 2System . out . println ( a ); // 输出 3a -= 1 ; // 相当于 a = a - 1System . out . println ( a ); // 输出 2a *= 3 ; // 相当于 a = a * 3System . out . println ( a ); // 输出 6a /= 3 ; // 相当于 a = a / 3System . out . println ( a ); // 输出 2a %= 3 ; // 相当于 a = a % 2System . out . println ( a ); // 输出 2(和C语言中的一致)
自增自减运算符:
++
是给变量的值
+1
,
--
是给变量的值
-1
。
int a = 1 ;a ++ ; // 后置 ++ 表示给 a 的值加 1 ,此时 a 的值为 2System . out . println ( a ++ ); // 注意:后置 ++ 是先使用变量原来值,表示式结束时给变量 +1 ,因此输出 2System . out . println ( a ); // 输出 3++ a ; // 前置 ++ 表示给 a 的值加 1System . out . println ( ++ a ); // 注意:前置 ++ 是先给变量 +1 ,然后使用变量中的值,因此输出 5System . out . println ( a ); // 输出 5// -- 操作符给操作 -1 ,与 ++ 含义类似
难点:前置++\--和后置++\--的区别一定要区分清楚!
关系运算符:
关系运算符主要有六个: == != < > <= >= ,其计 算结果是 true 或者 false 。(在Java中计算的结果只有两个,和C不同)
int a = 15 ;int b = 20 ;// 注意:在 Java 中 = 表示赋值// 在 Java 中 == 表示相等System . out . println ( a == b ); // falseSystem . out . println ( a != b ); // trueSystem . out . println ( a < b ); // trueSystem . out . println ( a > b ); // falseSystem . out . println ( a <= b ); // trueSystem . out . println ( a >= b ); // false
逻辑运算符:
逻辑运算符主要有&& || !(与,或,非),返回值均为boolean类型!
逻辑&&
int a = 1 ;int b = 2 ;System . out . println ( a == 1 && b == 2 ); // 左为真 且 右为真 则结果为真System . out . println ( a == 1 && b > 100 ); // 左为真 但 右为假 则结果为假System . out . println ( a > 100 && b == 2 ); // 左为假 但 右为真 则结果为假System . out . println ( a > 100 && b > 100 ); // 左为假 且 右为假 则结果为假
逻辑 ||
int a = 1 ;int b = 2 ;System . out . println ( a == 1 || b == 2 ); // 左为真 且 右为真 则结果为真System . out . println ( a == 1 || b > 100 ); // 左为真 但 右为假 则结果也为真System . out . println ( a > 100 || b == 2 ); // 左为假 但 右为真 则结果也为真System . out . println ( a > 100 || b > 100 ); // 左为假 且 右为假 则结果为假
逻辑 !:
int a = 1 ;System . out . println ( ! ( a == 1 )); // a == 1 为 true ,取个非就是 falseSystem . out . println ( ! ( a != 1 )); // a != 1 为 false ,取个非就是 true
注意逻辑 !不能表示:
int a = 1;System.out.println(!a);( 如果表示成这样会报错! )
位运算符:
位运算符有:按位取反(~),按位与(&),按位或(|),按位异或(^)。
按位取反(~):
如果该位为
0
则转为
1,
如果该位为
1
则转为
0 .
int a = 0xf ;System . out . printf ( "%x\n" , ~a )
按位与(&):
如果两个二进制位都是
1,
则结果为
1,
否则结果为
0。
int a = 10 ;int b = 20 ;System . out . println ( a & b );
按位或(|):
按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1
int a = 10 ;int b = 20 ;System . out . println ( a | b );
按位异或(^):
如果两个数字的二进制位相同
,
则结果为
0,
相异则结果为
1。
int a = 0x1 ;int b = 0x2 ;System . out . printf ( "%x\n" , a ^ b );
条件运算符:
条件运算符只有一个 :表达式 1 ? 表达式 2 : 表达式 3当 表达式 1 的值为 true 时 , 整个表达式的值为 表达式 2 的值 ;当 表达式 1 的值为 false 时 , 整个表达式的值为 表达式 3 的值 .也是 Java 中唯一的一个 三目运算符 , 是条件判断语句的简化写法
// 求两个整数的最大值int a = 10 ;int b = 20 ;int max = a > b ? a : b ;