Java运算符详解

﹏ヽ暗。殇╰゛Y 2023-07-21 06:08 8阅读 0赞

目录

    • 一、算数运算符
      • 一元运算符
      • 二元运算符
      • 算术赋值运算符
    • 二、关系运算符
    • 三、逻辑运算符
    • 四、位运算符
    • 五、其他运算符
    • 六、运算符优先级

一、算数运算符

一元运算符

算术一元运算符一共有3个,分别是-、++和–。
在这里插入图片描述
示例代码如下:

  1. int a = 12;
  2. //是把a变量取反
  3. System.out.println(-a);
  4. //先把a赋值给b变量再加一,即先 赋值后++
  5. int b = a++;
  6. System.out.println(b);
  7. //先把a加一,再把a赋值给b变量,即先++后赋值
  8. b = ++a;
  9. System.out.println(b);

输出结果:

  1. -12
  2. 12
  3. 14

二元运算符

二元运算符包括:+、-、*、/和%,这些运算符对数值类型数据都有效
在这里插入图片描述

算术赋值运算符

在这里插入图片描述

二、关系运算符

关系运算是比较两个表达式大小关系的运算,它的结果是布尔类型数据,即true或false。关系运算符有 6种:==、!=、>、<、>=和<=。
在这里插入图片描述
==和!=可以应用于基本数据类型和引用数据类型。当用于引用数据类型比较时,比较的是 两个引用是否指向同一个对象,但在实际开发过程中多数情况下,只是比较对象的内容是否相 当,不需要比较是否为同一个对象。

三、逻辑运算符

逻辑运算符是对布尔型变量进行运算,其结果也是布尔型。
在这里插入图片描述
短路与(&&)和短路或(||)能够采用最优化的计算方式,从而提高效率。在实际编程 时,应该优先考虑使用短路与和短路或。

示例代码如下:

  1. int i = 0;
  2. int a = 10;
  3. int b = 9;
  4. if ((a > b) || (i == 1)) {
  5. System.out.println("或运算为 真");
  6. } else {
  7. System.out.println("或运算为 假"); }
  8. if ((a < b) && (i == 1)) {
  9. System.out.println("与运算为 真");
  10. } else {
  11. System.out.println("与运算为 假");
  12. }
  13. if ((a > b) || (a++ == --b)) {
  14. System.out.println("a = " + a);
  15. System.out.println("b = " + b);
  16. }

运行结果:

  1. 或运算为
  2. 与运算为
  3. a = 10, b = 9

四、位运算符

位运算是以二进位(bit)为单位进行运算的,操作数和结果都是整型数据。位运算符有如下几个运算 符:&、|、^、~、>>、<<和>>>,以及相应的赋值运算符。
在这里插入图片描述
无符号右移>>>运算符仅被允许用在int和long整数类型, 如果用于short或byte数据, 则数据在 位移之前,转换为int类型后再进行位移计算。

位运算示例代码:

  1. //十进制50
  2. byte a = 0B00110010;
  3. //十进制94
  4. byte b = 0B01011110;
  5. // 0B01111110
  6. System.out.println("a | b = " + (a | b));
  7. // 0B00010010
  8. System.out.println("a & b = " + (a & b));
  9. // 0B01101100
  10. System.out.println("a ^ b = " + (a ^ b));
  11. // 0B10100001
  12. System.out.println("~b = " + (~b));
  13. // 0B00001100
  14. System.out.println("a >> 2 = " + (a >> 2));
  15. // 0B00011001
  16. System.out.println("a >> 1 = " + (a >> 1));
  17. // 0B00001100
  18. System.out.println("a >>> 2 = " + (a >>> 2));
  19. // 0B11001000
  20. System.out.println("a << 2 = " + (a << 2));
  21. // 0B01100100
  22. System.out.println("a << 1 = " + (a << 1));
  23. int c = -12;
  24. System.out.println("c >>> 2 = " + (c >>> 2));
  25. System.out.println("c >> 2 = " + (c >> 2));

运行结果:

  1. a | b = 126
  2. a & b = 18
  3. a ^ b = 108
  4. ~b = -95
  5. a >> 2 = 12
  6. a >> 1 = 25
  7. a >>> 2 = 12
  8. a << 2 = 200
  9. a << 1 = 100
  10. c >>> 2 = 1073741821
  11. c >> 2 = -3

五、其他运算符

除了前面介绍的主要运算符,Java还有一些其他运算符。

  • 三元运算符(? :)。例如x?y:z;,其中x、y和z都为表达式。
  • 小括号。起到改变表达式运算顺序的作用,它的优先级最高。
  • 中括号。数组下标。
  • 引用号(.)。对象调用实例变量或实例方法的操作符,也是类调用静态变量或静态方法的操作 符。
  • 赋值号(=)。赋值是用等号运算符(=)进行的。
  • instanceof。判断某个对象是否为属于某个类。
  • new。对象内存分配运算符。
  • 箭头(->)。Java 8新增加的,用来声明Lambda表达式。
  • 双冒号(::)。Java 8新增加的,用于Lambda表达式中方法的引用。

示例代码如下:

  1. import java.util.Date;
  2. public class HelloWorld {
  3. public static void main(String[] args) {
  4. int score = 80;
  5. // 三元运算符(? : )
  6. String result = score > 60 ? "及格" : "不及格";
  7. System.out.println(result);
  8. // new运算符可以创建Date对象
  9. Date date = new Date();
  10. //通过.运算符调用方法
  11. System.out.println(date.toString());
  12. }
  13. }

六、运算符优先级

在一个表达式计算过程中,运算符的优先级非常重要。表中从上到小,运算符的优先级从高到低, 同一行具有相同的优先级。二元运算符计算顺序从左向右,但是先级15的赋值运算符的计算顺序从右 向左的。
在这里插入图片描述
运算符优先级大体顺序,从高到低是:
算术运算符→位运算符→关系运算符→逻辑运算符 →赋值运算符


以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

发表评论

表情:
评论列表 (有 0 条评论,8人围观)

还没有评论,来说两句吧...

相关阅读