Java 运算符


Java 运算符

什么是运算符?

在Java编程中,操作数和运算符协同完成各种运算。操作数可以是常量、变量、表达式等,而运算符则是指示这些操作数如何运算的符号。

Java中的运算符类型

Java中的运算符可分为以下几类:

  • 算术运算符:用于完成基本的算术运算,包括加、减、乘、除等。
  • 赋值运算符:用于给变量赋值,包括简单赋值、算术赋值、位运算赋值等。
  • 比较运算符:用于比较两个值的大小关系,包括等于、大于、小于等。
  • 逻辑运算符:用于判断两个条件是否同时成立,包括与、或、非等。
  • 位运算符:用于处理整数类型变量的二进制位,包括按位与、按位或、按位异或等。
  • 三目运算符:用于简化条件语句的书写,包括条件表达式、null安全操作符等。
  • 类型转换运算符:用于将一个数据类型转换为另一个数据类型。

算术运算符

算术运算符包括加、减、乘、除、求余等,用于基本的算术运算。

  • 加:+
  • 减:-
  • 乘:*
  • 除:/
  • 求余:%
int a = 10;
int b = 3;
int c;

// 加法
c = a + b; // c = 13

// 减法
c = a - b; // c = 7

// 乘法
c = a * b; // c = 30

// 除法
c = a / b; // c = 3

// 求余
c = a % b; // c = 1

赋值运算符

赋值运算符用于给变量赋值,包括简单赋值、算术赋值、位运算赋值等。赋值运算符的优先级较低。

赋值运算符格式如下:

变量 = 表达式;

常见的赋值运算符包括:

  • =:简单赋值运算符,将等号右侧的表达式的值赋给左侧的变量。
  • +=:算术赋值运算符,相当于x = x + y
  • -=:算术赋值运算符,相当于x = x - y
  • *=:算术赋值运算符,相当于x = x * y
  • /=:算术赋值运算符,相当于x = x / y
  • %=:算术赋值运算符,相当于x = x % y
  • «=:位运算赋值运算符,左移位并赋值,相当于x = x << y
  • =:位运算赋值运算符,右移位并赋值,相当于x = x >> y

  • &=:位运算赋值运算符,按位与并赋值,相当于x = x & y
  • |=:位运算赋值运算符,按位或并赋值,相当于x = x | y
  • ^=:位运算赋值运算符,按位异或并赋值,相当于x = x ^ y
// 简单赋值
int x = 10;

// 算术赋值
int y = 5;
y += x; // y = 15

// 位运算赋值
int z = 10;
z <<= 2; // z = 40

比较运算符

比较运算符用于比较两个值的大小关系,包括等于、大于、小于等。比较运算符返回布尔类型的值,即truefalse

常见的比较运算符包括:

  • ==:相等运算符,用于判断两个值是否相等。
  • !=:不等运算符,用于判断两个值是否不相等。
  • <:小于运算符,用于判断左侧的值是否小于右侧的值。
  • :大于运算符,用于判断左侧的值是否大于右侧的值。

  • <=:小于等于运算符,用于判断左侧的值是否小于或等于右侧的值。
  • =:大于等于运算符,用于判断左侧的值是否大于或等于右侧的值。

int a = 10;
int b = 3;

boolean c = a == b; // c = false
c = a > b; // c = true
c = a <= b; // c = false

逻辑运算符

逻辑运算符用于判断两个条件是否同时成立,包括与(&&)、或(||)、非(!)等。

常见的逻辑运算符包括:

  • &&:与运算符,用于判断两个条件是否同时成立,两个条件都为true时返回true,否则返回false
  • ||:或运算符,用于判断两个条件是否有一项成立,只要其中一个条件为true就返回true,否则返回false
  • !:非运算符,用于对一个布尔类型变量取反。
int a = 10;
int b = 3;

boolean c = a > 5 && b < 7; // c = true
c = a > 5 || b < 7; // c = true
c = !(a > b); // c = false

位运算符

位运算符用于处理整数类型变量的二进制位,包括按位与(&)、按位或(|)、按位异或(^)等。

常见的位运算符包括:

  • &:按位与运算符,将两个值的二进制位进行与运算,结果中的每一位都是两个值对应位中都为1的情况下该位才为1,否则为0。
  • |:按位或运算符,将两个值的二进制位进行或运算,结果中的每一位都是两个值对应位中任意一个为1的情况下该位就为1,否则为0。
  • ^:按位异或运算符,将两个值的二进制位进行异或运算,结果中的每一位都是两个值对应位不相同的情况下该位才为1,否则为0。
  • ~:取反运算符,用于取反一个整数的所有位。
int a = 0b0011;
int b = 0b0101;

int c = a & b; // c = 0b0001
c = a | b; // c = 0b0111
c = a ^ b; // c = 0b0110
c = ~a; // c = 0b1100

三目运算符

三目运算符用于简化条件语句的书写,包括条件表达式、null安全操作符等。

常见的三目运算符包括:

  • ?::条件表达式,三目运算符的简写形式,用于根据一个条件选择不同的值。
  • ??:null安全操作符,用于判断一个变量是否为null,如果是则返回一个默认值,否则返回原变量的值。
// 条件表达式
int a = 10;
int b = 3;
int c = a > b ? a : b; // c = 10

// null安全操作符
String str = null;
String result = str ?? "Hello World"; // result = "Hello World"

类型转换运算符

类型转换运算符用于将一个数据类型转换为另一个数据类型。

常见的类型转换运算符包括:

  • (int):强制类型转换运算符,将一个变量转换为整数类型。
  • (double):强制类型转换运算符,将一个变量转换为双精度浮点数类型。
  • (String):强制类型转换运算符,将一个变量转换为字符串类型。
int a = 10;
double b = (double)a; // b = 10.0

String str = "123";
int c = Integer.parseInt(str); // c = 123