Skip to content
目录概览

运算符

运算符用来对数据的运算、赋值、比较等;在 Java 语言中主要分为以下几种:

  • 算数运算符
  • 自增、自减运算符
  • 赋值运算符
  • 位运算符
  • 关系运算符
  • 逻辑运算符
  • 三目运算符

算数运算符

算数运算符主要指的加、减、乘、除、取余等操作;

运算符需要注意表达式的类型提升

加:+

用于数值间的加法运算;

java
int a = 1;
int b = 2;
int c = a + b; // 3
System.out.println(c); // 3

+ 不仅可以做加法运算,还可以做字符串之间的连接;

java
System.out.println("一行"+"Java"); // 一行Java

减:-

减法运算符,用于两个数值相减;

java
int a = 1;
int b = 2;
int c = a - b; // -1
System.out.println(c); // -1

乘:*

乘法运算符,用于两个数值相乘;

java
int a = 1;
int b = 2;
int c = a * b; // 2
System.out.println(c); // 2

除:/

除法运算符,用于两个数值相除;

这里需要特别注意,算术表达式的所有类型将自动提升为参与表达式的最高类型;除法操作,可能得到浮点数结果,如3/2,正确结果应该是 1.5,但如果参与运算的类型都是int,结果也会强转为int,因为精度的丢失的问题,最后计算的结果为:1,因此,需要预先转换为要得到的最高类型(float或double),再参与运算,才能得到正确的结果;

java
int a = 3;
int b = 2;
int c = a / b; // 1
System.out.println(c); // 1

float a1 = 3;
float b1 = 2;
float c1 = a1 / b1; // 1.5
System.out.println(c); // 1.5

取余:%

取余又称之为取模(modulus),计算两个值相除之后的余数

java
int a = 5;
int b = 2;
int c = a % b; // 1
System.out.println(c); // 1

自增、自减运算符

在日常开发中,加1、减1的操作是非常的常见,因此,Java 为我们提供了自增、自减的运算符;a++ 表示将变量a的值加1,a-- 表示变量a的值减1;

java
int a = 2;
a++; // 3
a--; // 2

自增、自减运算符在表现形式上分为两种:

  • 后缀(a++、a--)

    此方式表示先赋值,再进行 +1 或 -1 操作

    java
    int a = 3;
    int b = a++ * 2; // b的值:6,a的值:4
    int c = a-- * 2; // b的值:6,a的值:3
  • 前缀(++a、--a)

    此方式表示先进行 +1 或 -1 操作,再赋值

    java
    int a = 3;
    int b = ++a * 2; // b的值:8,a的值:4
    int c = --a * 2; // b的值:4,a的值:3

赋值运算符

在Java中,使用 = 对变量进行赋值操作

位运算符

Java支持的位运算符有如下7个。

  • &:按位与。当两位同时为1时才返回1。

    java
    System.out.println(5 & 30); // 4

  • |:按位或。只要有一位为1即可返回1。

    java
    System.out.println(5 | 30); // 31

  • :按位非。单目运算符,将操作数的每个位(包括符号位)全部取反。

    java
    System.out.println(~5);

  • ^:按位异或。当两位相同时返回0,不同时返回1。

    java
    System.out.println(5 ^ 30);

  • <<:左移运算符。

  • >>:右移运算符。

  • >>>:无符号右移运算符。

    有符号左右移示例:

    java
    System.out.println(30 >> 1); // 15
    System.out.println(30 << 1); // 60

    有符号、无符号右移动示例:

    java
    System.out.println(-5 >> 2); // -2
    System.out.println(-5 >>> 2); // 1073741822

关系运算符

Java 中包含了比较丰富的关系运算符

  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于
  • ==:等于
  • !=:不等于

逻辑运算符

  • &&:逻辑“与”运算

    表达式1 && 表达式2:只有表达式1和表达式2都为 true 的时候,才通过;

  • ||:逻辑“或”运算

    表达式1 && 表达式2:表达式1和表达式2只要有一个为 true 的时候,就能通过;

  • !:逻辑“非”运算

    !表达式1:将表达式的结果取反;当表达式的结果为true时,取反就是false;当表达式的结果为false时,取反就是true;

三目运算符

三目运算符又称之为条件运算符,可以算作特定if...else常见下的简写;

格式:条件 ? 条件为true的结果 : 条件为false的结果

示例:

java
int a = 2;
String b = (a>0)?"大于0":"小于0"; // b = "大于0"

int c = 2;
String d = (c==0)?"c等于0":"c不等于0"; // d = "c不等于0"