Java 运算符

Java 运算符


开发工具与关键技术:IDEA Java

作者:萧氏萧然

撰写时间:2021年5月 7日

Java运算符按功能可分为:算数运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和条件运算符。

算数运算符

算术运算符包括通常的加(+)、减(-)、乘(*)、除(/)、取模(%),完成整数型和浮点型数据的算术运算。此外,算术运算符还有“++”和“–”两种,分别称为加1和减1运算符。这两种运算符有前缀形式和后缀形式,含有有所不同。例如,i++ 和 ++i 的执行顺序是不一样的,i++ 在 i 使用之后再 +1,++i 在 i 使用之前先 +1。i-- 和 --i 的情况于此类似。

// 运算符 + - * / ++ –

    int a = 8;

    int b = 5;

    System.out.println("a+b=" + (a + b));

    System.out.println("a-b=" + (a - b));

    System.out.println("a*b=" + (a * b));

    System.out.println("a++=" + (a++) + "打印之后自加一");

    System.out.println(a);

    System.out.println("++a=" + (++a) + "加一后再打印");

    // 除

    // 整数除法

    // 1、整数除以整数(非0)等于整数;(取整数时使用去余法)

    // 2、整数除以整数(0):异常java.lang.ArithmeticException: / by zero

    System.out.println("a/b="+ (a / b));

    // 小数除法(除数和被除数至少有一个是小数(浮点数))

    // 1、非0数除以非0数,就是数学中的计算结果

    System.out.println("5.5/4.4="+ (5.5 / 4.4));

    // 2、正非0数除以0,等于Infinity(正无穷)

    System.out.println("5.5/0.0="+ (5.5 / 0.0));

    // 3、负非0数除以0,等于-Infinity(负无穷)

    System.out.println("-5.5/0.0="+ (-5.5 / 0.0));

    // 4、0除以0,NaN(非数)

    System.out.println("0.0/0.0="+ (0.0 / 0.0));

    double dr = 0.0 /0;

    int i = (int) dr;

    System.out.println(i);

关系运算符

关系运算符用来比较两个值,包括大于(>)、小于(=)、小于等于(<=)、等于(==)和不等于(!=)6种。关系运算符都是二元运算符,也就是每个运算符都带有两个操作数,运算的结果是一个逻辑值即ture和false。Java允许“==”和“!=”两种运算符用于任何数据类型。例如,既可以判断两个数的值是否相等,也可以判断对象或数组的实例是否相等。判断实例时比较的是两个对象在内存中的引用地址是否相等。

注意:Java中 == 和 equals()方法的区别 == 在基本数据类型的时候就是比较值是否相同,在引用类型时是比较地址 equals 用于判断引用类型的值

逻辑运算符

逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非还有(^)异或。前两个是二元运算符,后一个是一元运算符。Java对逻辑与和逻辑或提供“短路”功能,也就是在进行运算时,先计算运算符左侧的表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。

&& 与,前后两个操作数必须都是true才返回true,否则返回false

& 不短路与,作用与&&相同,但不会短路。

|| 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。

| 不短路或,作用与

!称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将 得到false。

^ 异或,当两个操作数不同时才返回true,如果两个操作数相同则返回false。

位运算符

位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<>>)。位运算符应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型进行操作。

& 如果相对应位都是1,则结果为1,否则为0

| 如果相对应位都是 0,则结果为 0,否则为 1

^ 如果相对应位值相同,则结果为0,否则为1

〜 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

<< 按位左移运算符。左操作数按位左移右操作数指定的位数。

>> 按位右移运算符。左操作数按位右移右操作数指定的位数。

>>>

按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零 填充。

赋值运算符

赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。

= 简单的赋值运算符,将右操作数的值赋给左侧操作数

+= 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数

-= 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数

*= 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数

/= 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数

%= 取余和赋值操作符,它把左操作数和右操作数取余后赋值给左操作数

条件运算符

条件运算符( ? : )也称为 “三元运算符”或“三目运算符”。

语法形式:布尔表达式 ? 表达式1 :表达式2。

运算过程:如果布尔表达式的值为 true,则返回 表达式1 的值,否则返回表达式2的值。

Java运算符优先级

优先级运算符 简介结合性

优先级1 运算符[ ] 、 . 、 ( ) 简介方法调用,属性获取 结合性 从左向右

优先级2 运算符!、~、 ++、 – 简介一元运算符 结合性 从右向左

优先级3运算符 * 、/ 、% 简介乘、除、取模(余数)结合性从左向右

优先级4 运算符+ 、 - 简介加减法 结合性从左向右

优先级5 运算符<<、 >>、 >>> 简介左位移、右位移、无符号右移
结合性从左向右

优先级6 运算符< 、<= 、>、 >=、 简介instanceof小于、小于等于、大于、大于等于, 对象类型判断是否属于同类型 结合性从左向右

优先级7 运算符== 、!= 简介2个值是否相等,2个值是否不等于 结合性从左向右

优先级8 运算符& 简介按位与 结合性从左向右

优先级9 运算符^ 简介按位异或 结合性从左向右

优先级10 运算符| 简介按位或 结合性从左向右

优先级11 运算符&& 简介短路与 结合性从左向右

优先级12 运算符|| 简介短路或 结合性从左向右

优先级13 运算符?: 简介三目运算符 结合性从右向左

优先级14运算符=、 += 、-= 、*= 、/=、 %=、 &=、 |=、 ^=、 <、<= 、>、>= 、>>=

简介混合赋值运算符 结合性从右向左

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值