分享

在Java中各种类型运算符的介绍与其基本使用方式(有具体使用示例)

 昵称70680357 2020-07-02

一.算数运算符

  • 基本四则运算符 + - * / %(使用规则简单,正常使用即可)
    注意事项:
    a) int/int 结果还是 int 要保留小数需要使用double来计算
int a = 1;
     int b = 2;
     System.out.println(a/b);
     //结果为0

b)0不能作为出除数
c)%表示取余不仅仅可以对int求模,也能对double求模

System.out.println(11.5 % 2.0);
//输出1.5
  • 增量赋值运算符 (+= . -= . *= . /= . %= )

  • 自增自减运算符 (++ . --)

  • 语言 方法
    4650 8DbgUuqr1R
    A286P 抖音老板是谁
    5904 2007.03.03 11-03-13

    注意:
    1.java中在循环中尽量使用后置++
    2.前置++ – (先++ – 后使用)
    3.后置++ --(先使用,后++ --)

二.关系运算符

六个关系运算符:(== ,!=,< ,> ,<= ,>=)
**注意:**用法简单,值得关注的是关系运算符表达式的返回值都是布尔类型

三.逻辑运算符(重点)

逻辑运算符主要有三个(&& ,|| , !)
**注意:**逻辑运算符的操作数(操作符往往是关系运算符的结果)和返回值都是布尔类型

  • 逻辑与 &&
    规则:两个操作数都为true ,结果为true,否则结果为false
  • 逻辑或 ||
    规则:两个操作数都为false,结果为false,否则结果为true
  • 逻辑非 !
    规则: 操作数为true,结果为false,操作数为false,结果为true(这是个单目运算符,只有一个操作数)
  • 应用:短路求值
System.out.println(10 > 20 && 10 / 0 == 0);    //打印false
System.out.println(10 < 20 || 10 / 0 == 0);    //打印true

结论:
1.对于&&,如果左侧表达式为false,则表达式的整体的值一定是false,无需计算右侧表达式。
2.对于||,如果左侧表达式为true,则表达式的整体的值一定是true,无需计算右侧表达式。

  • & 和 | (不推荐使用)
    & 和 | 如果操作数为boolean 的时候,也表示逻辑运算,但是和&&及||相比,它们不支持短路求值。
System.out.println(10 > 20 && 10 / 0 == 0);    //程序抛出异常
System.out.println(10 < 20 || 10 / 0 == 0);    //程序抛出异常

四.位运算符

Java中对数据的操作的最小单位不是字节,而是二进制
位运算符主要有四个:(& , | , ~ ,^)
位操作表示按二进制位运算,计算机中都是使用二进制来表示数据的(01构成的序列),按位运算就是在按照二进制位的每一位依次进行计算

  • 按位与 &:如果两个二进制为都是1,则结果为1,否则为0
int a = 10; //10的二进制为1010
int b = 20; //20的二进制为10100
System.out.println(a & b);

按位或 | :

int a = 10;
int b = 20;
System.out.println(a | b);

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

  • 按位取反 ~ :如果该位为0则转为1,如果该位为1则转为0
  • 按位异或:如果两个数字的二进制位相同,则结果为0,相异则结果为1.

五.移位运算符

移位运算符有三个:<< , >> , >>> (都是按二进制位来运算)

  • 左移<<: 最左侧位不要了,最右侧补零
int a = 0x10; //0x表示16进制
System.out.print("%x\n",a<<1); //运行结果20(是按16进制打印的)
  • 右移>>: 最右侧位不要了,最左侧补符号位(正数补0,负数补1)
  • 无符号右移>>>: 最右侧位不要了,最左侧补0.
    注意:
    1.左移1位相当于原数字2,左移N位,相当于原数字2的N次方
    2.右移1位相当于原数字/2,左移N位,相当于原数字/2的N次方
    3.计算机移位效率高于计算乘除
    4.移动负数位或者移位位数过大都没有意义

六.条件运算符

条件运算符只有一个: 表达式1 ? 表达式2 :表达式3

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

//求两个数的最大值
int a = 10;
int b = 20;
int max = a > b ?  a : b;

七.运算符的优先级

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多