Java中的运算符有哪些详解
作者:y2508
前言:
在Java编程中,运算符是用于执行各种计算和操作的重要元素。它们使得我们能够对数据进行处理、比较和组合,从而实现复杂的逻辑。
一、算术运算符
算术运算符用于执行基本的数学运算,如加法、减法、乘法和除法。以下是常见的算术运算符:
- + :加法运算符,用于将两个操作数相加。
- - :减法运算符,用于从第一个操作数中减去第二个操作数。
- * :乘法运算符,用于将两个操作数相乘。
- / :除法运算符,用于将第一个操作数除以第二个操作数。需要注意的是,当两个整数相除时, 结果会舍去小数部分。
- % :取模运算符,返回除法运算的余数。
public class Main { public static void main(String[] args) { int a=10; int b=3; System.out.println(a+b); //13 System.out.println(a-b); //7 System.out.println(a*b); //30 System.out.println(a/b); //3 System.out.println(a%b); //1 } }
注意事项:
1.都是二元运算符,使用时必须要有左右两个操作数
2.int / int 结果还是int类型,而且会向下取整
3.做除法和取模时,右操作数不能为0
4.% 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的
5.两侧操作数类型不一致时,向类型大的提升
二、关系运算符
关系运算符用于比较两个操作数之间的关系,返回一个布尔值( true 或 false )。常见的关系运算符有:
- == :检查两个操作数是否相等。
- != :检查两个操作数是否不相等。
- < :检查第一个操作数是否小于第二个操作数。
- > :检查第一个操作数是否大于第二个操作数。
- <= :检查第一个操作数是否小于或等于第二个操作数。
- >= :检查第一个操作数是否大于或等于第二个操作数。
public class Main { public static void main(String[] args) { int a=10; int b=30; System.out.println(a == b); System.out.println(a != b); System.out.println(a > b); System.out.println(a < b); System.out.println(a >= b); System.out.println(a <= b); } }
注意:当需要多次判断时,不能连着写,比如:3 < a < 5,Java程序与数学中是有区别的
三、逻辑运算符
逻辑运算符用于组合多个布尔表达式,以实现更复杂的逻辑判断。常见的逻辑运算符包括:
3.1 && :逻辑与运算符
当两个操作数都为 true 时,结果为 true ,否则为 false 。
public class Main { public static void main(String[] args) { int a=2; int b=3; System.out.println(a == 2 && b == 3); System.out.println(a == 2 && b == 1); System.out.println(a == 1 && b == 3); System.out.println(a == 1 && b == 1); } }
3.2 || :逻辑或运算符
当至少一个操作数为 true 时,结果为 true ,只有当两个操作数都为 false 时,结果才为 false 。
public class Main { public static void main(String[] args) { int a=2; int b=3; System.out.println(a == 2 || b == 3); System.out.println(a == 2 || b == 1); System.out.println(a == 1 || b == 3); System.out.println(a == 1 || b == 1); } }
3.3 ! :逻辑非运算符
用于反转操作数的布尔值。
public class Main { public static void main(String[] args) { int a=2; System.out.println(!(a == 2)); System.out.println(!(a == 3)); } }
四、位运算符
位运算符用于对操作数的二进制位进行操作。这些运算符在处理底层数据和优化性能时有时很有用。常见的位运算符有:
4.1 & :按位与运算符
如果两个二进制位都是 1, 则结果为 1, 否则结果为 0。
public class Main { public static void main(String[] args) { int a=5; int b=10; System.out.println(a&b); } } // 00000000 00000000 00000000 00000101 -----5 & // 00000000 00000000 00000000 00001010 -----10 //--------------------------------------------- // 00000000 00000000 00000000 00000000 -----0
4.2 | :按位或运算符
如果两个二进制位都是 0, 则结果为 0, 否则结果为 1。
public class Main { public static void main(String[] args) { int a=5; int b=10; System.out.println(a|b); } } // 00000000 00000000 00000000 00000101 -----5 | // 00000000 00000000 00000000 00001010 -----10 //--------------------------------------------- // 00000000 00000000 00000000 00001111 -----15
4.3 ^ :按位异或运算符
如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1。
public class Main { public static void main(String[] args) { int a=5; int b=10; System.out.println(a^b); } } // 00000000 00000000 00000000 00000101 -----5 ^ // 00000000 00000000 00000000 00001010 -----10 //--------------------------------------------- // 00000000 00000000 00000000 00001111 -----15
注意:如果两个数相同,则异或的结果为0
4.4 ~ :按位取反运算符
反转操作数的每一位。
public class Main { public static void main(String[] args) { int a=0xb; System.out.printf("%x\n",~a); } } // 00000000 00000000 00000000 00001011 // ~ ------------------------------------------ // 1111 1111 1111 1111 1111 1111 1111 0100 // f f f f f f f 4
注意:
0x 前缀的数字为 十六进制 数字. 十六进制可以看成是二进制的简化表示方式. 一个十六进制数字对应 4 个二进制位.
0xb 表示 10 进制的 11, 也就是二进制的 1011
printf 能够格式化输出内容, %x 表示按照十六进制输出.
\n 表示换行符
4.5 << :左移运算符
将操作数的二进制位向左移动指定的位数。
public class Main { public static void main(String[] args) { int a=10; System.out.println(a<<1); } } // 00000000 00000000 00000000 00001010 // << // -------------------------------------- // 00000000 00000000 00000000 00010100 -----20
左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方
4.6 >> :右移运算符
将操作数的二进制位向右移动指定的位数,正数右移时高位补 0,负数右移时高位补 1(算术右移)。
public class Main { public static void main(String[] args) { int a=10; System.out.println(a<<1); } } // 00000000 00000000 00000000 00001010 // >> // -------------------------------------- // 00000000 00000000 00000000 00000101 -----5
右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
五、增量运算符
例如 += 、 -= 、 *= 、 /= 等,该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。
int a=10; System.out.println(a+=2);//相当于a=a+2 //12
int a=10; System.out.println(a-=2);//相当于a=a-2 //8
int a=10; System.out.println(a*=2);//相当于a=a*2 20
int a=10; System.out.println(a/=2);//相当于a=a/2 5
int a=10; System.out.println(a%=2);//相当于a=a%2 0
注意:只有变量才能使用该运算符,常量不能使用。
六、自增/自减运算符 ++ --
++是自增1,--是自减1
前置++先++再使用,后置++先使用后++,前置--先--再使用,后置--先使用后--
总结:
正确理解和熟练运用这些运算符是编写高效和准确 Java 代码的基础。
到此这篇关于Java中的运算符有哪些的文章就介绍到这了,更多相关Java中运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!