Java中的运算符及其示例
运算符是指示编译器执行特定操作的符号。例如,“+”运算符指示编译器执行加法,“>”运算符指示编译执行比较,“=”用于赋值等等。在本指南中,我们将借助示例讨论java中的操作。
运算符和操作数:
在任何运算中,都有一个运算符和操作数。例如:在a+b中,“+”符号是运算符,a&b是操作数。
Java中运算符的类型
java中的运算符分为以下八类:
1) 算术运算符
2) 赋值运算符
3) 一元运算符
4) 逻辑运算符
5) 关系运算符
6) 逐位运算符
7) 三元运算符
8) 轮班运算符
1) 算术运算符
2) 赋值运算符
3) 一元运算符
一元减(-)
定期加 (++)
递减(--)
不是(!)
逐位补码(~)
4) 逻辑运算符
5) 关系运算符(比较运算)
6) 逐位运算符
num1 = 11; /* equal to 00001011*/
num2 = 22; /* equal to 00010110 */
itwise运算符执行逐位处理。
num1&num2比较num1和num2的对应位,如果两个位相等,则生成1,否则返回0。在我们的例子中,它将返回:2,即00000010,因为在num1和num2的二进制形式中,只有倒数第二位匹配。
num1|num2比较num1和num2的对应位,如果任一位为1,则生成1,否则返回0。在我们的情况下,它将返回31,即00011111
num1^num2比较num1和num2的相应位,如果它们不相等,则生成1,否则返回0。在我们的示例中,它将返回29,相当于00011101
~num1是一个补码运算符,它只是将位从0变为1,从1变为0。在我们的例子中,它将返回-12,它是有符号的8位,相当于11110100
num1<<2是左移运算符,它将比特向左移动,丢弃最左边的比特,并为最右边的比特赋值0。在我们的案例中,输出为44,相当于00101100
7) 三元运算符
variable = Condition ? Expression1: Expression2
public class TernaryOperatorDemo {
public static void main(String args[]) {
int num1, num2;
num1 = 25;
/* num1 is not equal to 10 that's why
* the second value after colon is assigned
* to the variable num2
*/
num2 = (num1 == 10) ? 100: 200;
System.out.println( "num2: "+num2);
/* num1 is equal to 25 that's why
* the first value is assigned
* to the variable num2
*/
num2 = (num1 == 25) ? 100: 200;
System.out.println( "num2: "+num2);
}
}
8) 轮班运算符(移位)
public class JavaExample {
public static void main(String[] args) {
int num = 24;
//Left shift
System.out.println("num<<2: "+(num<<2));
//Right shift
System.out.println("num>>2: "+(num>>2));
}
}
Java中的运算符优先级
这决定了如果表达式有多个运算符,则需要首先计算哪个运算符。优先级较高的运算符位于顶部,优先级较低的运算符位于底部。