专门做房地产设计的图片网站滨州seo招聘
[Java基础] 基本数据类型
[Java基础] Java HashMap 的数据结构和底层原理
目录
算术运算符
比较运算符
逻辑运算符
位运算符
赋值运算符
其他运算符
常见面试题
Java语言支持哪些类型的运算符?
请解释逻辑运算符&&和&的区别?
请解释条件运算符(?:)的用法?
Java 中的运算符用于执行各种操作,如算术运算、比较运算、逻辑运算、位运算、赋值运算等。下面是对 Java 中一些常用运算符的详细解释,并附上相应的代码片段。
算术运算符
- 加法 (
+
): 用于两个数相加。 - 减法 (
-
): 用于两个数相减。 - 乘法 (
*
): 用于两个数相乘。 - 除法 (
/
): 用于两个数相除,结果为浮点数或整数(取决于操作数类型)。 - 取余 (
%
): 用于两个数相除后的余数。 - 自增 (
++
): 将变量的值增加 1。 - 自减 (
--
): 将变量的值减少 1。
public class ArithmeticOperators { public static void main(String[] args) { int a = 10; int b = 5; System.out.println("a + b = " + (a + b)); System.out.println("a - b = " + (a - b)); System.out.println("a * b = " + (a * b)); System.out.println("a / b = " + (a / b)); System.out.println("a % b = " + (a % b)); a++; System.out.println("a after a++ = " + a); a = 10; --a; System.out.println("a after --a = " + a); }
}
比较运算符
- 等于 (
==
): 判断两个值是否相等。 - 不等于 (
!=
): 判断两个值是否不相等。 - 大于 (
>
): 判断一个值是否大于另一个值。 - 小于 (
<
): 判断一个值是否小于另一个值。 - 大于等于 (
>=
): 判断一个值是否大于等于另一个值。 - 小于等于 (
<=
): 判断一个值是否小于等于另一个值。
public class ComparisonOperators { public static void main(String[] args) { int a = 10; int b = 5; System.out.println("a == b: " + (a == b)); System.out.println("a != b: " + (a != b)); System.out.println("a > b: " + (a > b)); System.out.println("a < b: " + (a < b)); System.out.println("a >= b: " + (a >= b)); System.out.println("a <= b: " + (a <= b)); }
}
逻辑运算符
- 逻辑与 (
&&
): 当且仅当两个操作数都为true
时,结果为true
。 - 逻辑或 (
||
): 当两个操作数中至少有一个为true
时,结果为true
。 - 逻辑非 (
!
): 如果操作数为true
,则结果为false
;如果操作数为false
,则结果为true
。
public class LogicalOperators { public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println("a && b: " + (a && b)); System.out.println("a || b: " + (a || b)); System.out.println("!a: " + !a); }
}
位运算符
- 按位与 (
&
): 对应位都为 1 时结果为 1。 - 按位或 (
|
): 对应位有一个为 1 时结果为 1。 - 按位取反 (
~
): 对应位为 1 时结果为 0,为 0 时结果为 1。 - 按位异或 (
^
): 对应位不同则结果为 1。 - 左移 (
<<
): 将二进制位向左移动若干位,右边补 0。 - 右移 (
>>
): 将二进制位向右移动若干位,左边补符号位(正数补 0,负数补 1)。 - 无符号右移 (
>>>
): 将二进制位向右移动若干位,左边补 0(不考虑符号位)。
public class BitwiseOperators { public static void main(String[] args) { int a = 60; // 60 = 0011 1100 int b = 13; // 13 = 0000 1101 System.out.println("a & b = " + (a & b)); // 12 = 0000 1100 System.out.println("a | b = " + (a | b)); // 61 = 0011 1101 System.out.println("~a = " + (~a)); // -61 = 1100 0011 System.out.println("a ^ b = " + (a ^ b)); // 49 = 0011 0001 System.out.println("a << 2 = " + (a << 2)); // 240 = 1111 0000 System.out.println("a >> 2 = " + (a >> 2)); // 15 = 0000 1111 System.out.println("a >>> 2 = " + (a >>> 2)); // 15 = 0000 1111 (无符号右移) }
}
赋值运算符
- 简单赋值 (
=
): 将右边的值赋给左边的变量。 - 加法赋值 (
+=
): 将右边的值加到左边的变量上,并将结果赋值给左边的变量。 - 减法赋值 (
-=
): 将左边的变量减去右边的值,并将结果赋值给左边的变量。 - 乘法赋值 (
*=
): 将左边的变量乘以右边的值,并将结果赋值给左边的变量。 - 除法赋值 (
/=
): 将左边的变量除以右边的值,并将结果赋值给左边的变量。 - 取余赋值 (
%=
): 将左边的变量对右边的值取余,并将结果赋值给左边的变量。
public class AssignmentOperators { public static void main(String[] args) { int a = 10; int b = 5; a += b; // a = a + b System.out.println("a += b: " + a); a -= b; // a = a - b System.out.println("a -= b: " + a); a *= b; // a = a * b System.out.println("a *= b: " + a); a /= b; // a = a / b System.out.println("a /= b: " + a); a = 10; a %= b; // a = a % b System.out.println("a %= b: " + a); }
}
其他运算符
- 条件运算符 (
?:
): 也称为三元运算符,用于简化if-else
语句。 - 字符串连接运算符 (
+
): 用于连接两个字符串。
public class OtherOperators { public static void main(String[] args) { int a = 10; int b = 20; // 条件运算符 String result = (a > b) ? "a is greater" : "b is greater"; System.out.println(result); // 字符串连接运算符 String str1 = "Hello"; String str2 = "World"; String greeting = str1 + " " + str2; System.out.println(greeting); }
}
常见面试题
Java运算符在面试中是一个常见的考察点,以下是一些可能的Java运算符面试题及解答。
Java语言支持哪些类型的运算符?
Java语言支持的运算符主要包括算术运算符(+、-、*、/、%、++、--)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、>>、<<、>>>)、条件运算符(?:)以及赋值运算符(=及其扩展形式如+=、-=等)。
请解释逻辑运算符&&和&的区别?
- &&:逻辑与运算符,当且仅当两个操作数都为true时,结果才为true。如果第一个操作数为false,则不会计算第二个操作数,即具有短路特性。
- &:按位与运算符,对两个操作数的每一位进行与运算。无论第一个操作数的结果如何,都会计算第二个操作数。
请解释条件运算符(?:)的用法?
条件运算符(?:)是Java中的唯一三元运算符,其语法为“条件表达式?表达式1:表达式2”。如果条件表达式的结果为true,则计算并返回表达式1的值;否则,计算并返回表达式2的值。