目录

一、算术运算符

二、复合赋值运算符

三、自增、自减运算符

四、关系运算符

五、逻辑运算符

六、位运算符

七、移位运算符

八、条件运算符

九、运算符的优先级

十、Java中的注释

十二、Java中的关键字

十三、总结


一、算术运算符

  • ❄ +(加)❄ -(减)❄ *(乘)❄ /(除)❄ %(取模)

👀 +(加)-(减)*(乘)与数学中的类似,这里就不过多的叙述了。

1、/ (除法): 得到的是商

  • 🍓当  /(除号)两端都是整数时,执行的是整数除法,整数除法得到的结果是整数部分,小数部分直接舍去。
  • 🍓两端只要有一个浮点数,执行的就是浮点数的除法。
public  class TestDemo {
    public static void main(String[] args) {

        System.out.println(1 / 2);
        System.out.println(1.0/2);
    }
}

运行结果

java除号 java中的除法符号_java

🍓0不能做除数

java除号 java中的除法符号_开发语言_02

  • Java中有很多异常,后面会慢慢介绍。

2、% (取模): 得到的是相除之后的余数

🍓 Java中不仅可以对 int 取模, 也能对 double 来取模。

public  class TestDemo {
    public static void main(String[] args) {
        System.out.println(-10%3);
        System.out.println(10%-3);
        System.out.println(-10%-3);
        System.out.println(13.5%3);
    }
}

运行结果

java除号 java中的除法符号_后端_03


二、复合赋值运算符

  • ❄ +=:加等  ❄ -=:减等  ❄ *= :乘等 ❄ /=:除等 ❄ %=:取模等

🍉 这几个运算符与C语言中的复合运算符使用一样,但需要注意:

public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        a+=1; //a = a + 1;
        System.out.println(a);
    }
}

运行结果

java除号 java中的除法符号_java 中 除的方法_04

💥 下面这段代码是将int类型的数据与short类型的数据相加,将结果赋给short类型,所以会报错。

java除号 java中的除法符号_后端_05

🎄 使用复合运算符就不会报错,使用复合运算符会自动进行强制类型转换。

public  class TestDemo {
    public static void main(String[] args) {
       short  a = 20;
        a+=1; //a = a + 1;
        System.out.println(a);
    }
}

运行结果

java除号 java中的除法符号_经验分享_06


三、自增、自减运算符

🍉 ++、-- 运算符与C语言中的复合运算符使用一样。

💎 前置++:先++,后使用

public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int i1 = ++a;  // a = a+1;  i1 = a;
        System.out.println(a);
        System.out.println(i1);
    }
}

运行结果

java除号 java中的除法符号_经验分享_07

💎 后置++:先使用,后++

public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int i1 = a++; // i1 = a; a = a+1;
        System.out.println(a);
        System.out.println(i1);
    }
}

运行结果

java除号 java中的除法符号_java_08

💎 前置--:先--,后使用

public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int i1 = --a; //a = a-1;  i1 = a;
        System.out.println(a);
        System.out.println(i1);
    }
}

运行结果

java除号 java中的除法符号_后端_09

💎 后置--:先使用,再--

public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int i1 = a--; // i1 = a; a = a-1;
        System.out.println(a);
        System.out.println(i1);
    }
}

运行结果

java除号 java中的除法符号_java 中 除的方法_10

结论:

  1. 如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.
  2. 如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值。

四、关系运算符

  • ❄ >:大于             ❄ <:小于             ❄ ==:等于
  • ❄ >=:大于等于    ❄ <=:小于等于    ❄ !=:不等于       
public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a == b); //false
        System.out.println(a != b); //true
        System.out.println(a < b); //true
        System.out.println(a > b); //false
        System.out.println(a <= b); //true
        System.out.println(a >= b); //false
    }
}

运行结果

java除号 java中的除法符号_java_11

🍓 关系运算符的表达式返回值都是 boolean 类型,结果不是 true 就是 false。


五、逻辑运算符

  • ❄ &&:逻辑与        ❄ ||:逻辑或        ❄!:逻辑非

🌊 &&(逻辑与):

public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        System.out.println(a < b && b > c); //false
    }
}

java除号 java中的除法符号_经验分享_12

结论:

  • 表达式 1 && 表达式 2 :两个表达式都是布尔表达式。
  • 短路:如果表达式 1为假就不执行表达式 2。
  • 两个表达式全为真,整个表达式才为真(true)。

🌊 ||(逻辑或):

public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        System.out.println(a < b || b > c); //true
    }
}

运行结果

java除号 java中的除法符号_java 中 除的方法_13

结论:

  • 表达式 1 || 表达式 2 :两个表达式都是布尔表达式。
  • 短路:如果表达式 1为真就不执行表达式 2。
  • 只要有一个表达式为真,整个表达式就为真(true)。

🌊 !(逻辑非):

public  class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(!(a < b)); //false
        System.out.println(!!(a < b)); //true
        // System.out.println(!a < b); //error 逻辑操作符的表达式必须是布尔表达式
    }
}

运行结果

java除号 java中的除法符号_java_14

结论:

  • !布尔表达式
  • !false = true
  • ! true = false

🍓 短路求值

  • && 和 || 遵守短路求值的规则。
public  class TestDemo {
    public static void main(String[] args) {
        // 10>20 为假,所以不会执行&&后面的表达式
        System.out.println(10 > 20 && 10 / 0 == 0); // 打印 false
        //10<20 为真,所以不会执行 || 后面的表达式
        System.out.println(10 < 20 || 10 / 0 == 0); // 打印 true
    }
}

💥 计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值.

结论:

  1. 对于 &&
  2. 对于 ||

🌀 & 和 | (不推荐使用)

java除号 java中的除法符号_开发语言_15

  • & 和 | 如果操作数为 boolean 的时候, 也表示逻辑运算. 但是和 && 以及 || 相比, 它们不支持短路求值.

六、位运算符

🍓 Java 中对数据的操作的最小单位不是字节, 而是二进制位.

  • ❄ &:按位与 ❄ |:按位或 ❄ ^:按位异或 ❄ ~:按位取反

🌊 位操作表示按二进制位运算。计算机中都是使用二进制来表示数据的(0、1构成的序列), 按位运算就是在按照二进制位的每一位依次进行计算。

1、按(2进制)位与:&

✨ 规则:两个二进制数,有0则为0,全1则为1。

public class TestDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 5;

        int c = a & b;
        System.out.println(c);
    }
}

java除号 java中的除法符号_java_16

运行结果

java除号 java中的除法符号_开发语言_17

2、按(2进制)位或:|

✨ 规则:两个二进制数,有1则为1,全0则为0。

public class TestDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 5;

        int c = a | b;
        System.out.println(c);
    }
}

java除号 java中的除法符号_后端_18

运行结果

java除号 java中的除法符号_后端_19

💥 注意:

  • 当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑运算。

3、按(2进制)位异或:^

✨ 规则:两个二进制数,相同为0,相异为1。

public class TestDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 5;

        int c = a ^ b;
        System.out.println(c);
    }
}

java除号 java中的除法符号_后端_20

 运行结果

java除号 java中的除法符号_java_21

 4、~ 按(二进制)位取反

✨ 规则:该位为 0 则变为 1, 该位为 1 则变为 0。

public class TestDemo {
    public static void main(String[] args) {
        int a = 0xf;
        System.out.printf("%x\n", ~a);
    }
}

运行结果

java除号 java中的除法符号_java_22

💥 注意:

  1. 0x 前缀的数字为 十六进制 数字. 十六进制可以看成是二进制的简化表示方式. 一个十六进制数字对应 4 个二进制位.
  2. 0xf 表示 10 进制的 15, 也就是二进制的 1111
  3. printf 能够格式化输出内容, %x 表示按照十六进制输出.
  4. \n 表示换行符

七、移位运算符

  • ❄ <<:左移 ❄ >>:右移 ❄ >>>:无符号右移

🍓 左移 <<: 最左侧位不要了, 最右侧补 0

public class TestDemo {
    public static void main(String[] args) {
        int a = 3;
        System.out.println(a<<1); //左移1位
    }
}

java除号 java中的除法符号_后端_23

🍓 右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

public class TestDemo {
    public static void main(String[] args) {
        int a = 3;
        System.out.println(a>>1); //右移1位
    }
}

java除号 java中的除法符号_开发语言_24

🍓 无符号右移 >>>: 最右侧位不要了, 最左侧补 0。

public class TestDemo {
    public static void main(String[] args) {
        int a = -3;
        System.out.println(a>>>1); //右移1位
    }
}

java除号 java中的除法符号_后端_25

运行结果

java除号 java中的除法符号_java_26

💥 注意:

  1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
  2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
  3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替。
  4. 移动负数位或者移位位数过大都没有意义。
  5. 没有无符号左移

八、条件运算符

🍓 表达式1 ? 表达式2 : 表达式3

  • 表达式1是一个布尔表达式。当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值。

⚡ Java 中唯一的一个三目运算符, 是条件判断语句的简化写法.

public class TestDemo {
    public static void main(String[] args) {
        // 求两个整数的最大值
        int a = 10;
        int b = 20;
        int max = a > b ? a : b;
        System.out.println(max);
    }
}

 九、运算符的优先级

🍉 Java中的运算符优先级与C语言一样,这里就不详细说明了。

优先级

运算符


结合性

1

()

括号运算符

从左到右

2

!、+(正号)、-(负号)

一元运算符

从左到右

3

~

位逻辑运算符

从右到左

4

++、--

自增自减运算符

从右到左

5

*、/、%

算术运算符

从左到右

6

+、-

算术运算符

从左到右

7

<<、>>、>>>

移位运算符

从左到右

8

>、>=、<、<=

关系运算符

从左到右

9

==、!=

关系运算符

从左到右

10

&

位运算符、逻辑运算符

从左到右

11

^

位运算符、逻辑运算符

从左到右

12

|

位运算符、逻辑运算符

从左到右

13

&&

逻辑运算符

从左到右

14

||

逻辑运算符

从左到右

15

?:

条件运算符

从右到左

16

=、+=、-=、*=、/=、%=

关系运算符

从右到左

⭐ 运算符之间是有优先级的, 具体的规则我们不必记忆,在可能存在歧义的代码中加上括号即可。

🎄 总结

  • % 操作再 Java 中也能针对 double 来计算.
  • 需要区分清楚前置自增 和 后置自增之间的区别.
  • 由于 Java 是强类型语言, 因此对于类型检查较严格, 因此像 && 之类的运算操作数必须是 boolean.
  • 要区分清楚 & 和 | 什么时候是表示按位运算, 什么时候表示逻辑运算.

 十、Java中的注释

  • 注释是为了让代码更容易被读懂而附加的描述信息. 不参与编译运行, 但是却非常重要.
  • 时刻牢记! 代码写出来是为了给人看的, 更是为了给三个月后的你自己看的.

🍓 基本规则

  • 单行注释:// 注释内容(用的最多)
  • 多行注释:/* 注释内容*/(不推荐)
  • 文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可用来自动生成文档

🍓 注释规范

  • 内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新.
  • 篇幅合理: 注释既不应该太精简, 也不应该长篇大论.
  • 使用中文: 一般中国公司都要求使用中文写注释, 外企另当别论.
  • 积极向上: 注释中不要包含负能量。

十二、Java中的关键字

java除号 java中的除法符号_java 中 除的方法_27


十三、总结

详细介绍了Java中的运算符及使用方式,整体来看, Java 的运算符的基本规则和 C 语言基本一致!文章最后补充了Java中的注释与关键字。