6. Java 运算符

216 阅读6分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情>>

🎨 个人介绍

👉大家好,我是:旺仔不是程序员

👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻

👉你的支持,是我每天更新的动力。

👉赞点:👍 留言:✍ 收藏:⭐

👉个人格言:想法一步一步的落实,才是你我前进最佳选择。

1. 什么是java运算符

  1. 计算机的最基本用途之一就是执行数学运算
  2. 作为一门计算机语言,Java也提供了一套丰富的运算符操纵变量

2. 运算符的分类

  1. 算术运算符
  2. 关系运算符
  3. 位运算符
  4. 逻辑运算符
  5. 赋值运算符
  6. 其他运算符

3. 算数运算符

操作符描述例子
+加法 - 相加运算符两侧的值A + B 等于 30
-减法 - 左操作数减去右操作数A – B 等于 -10
*乘法 - 相乘操作符两侧的值A * B等于200
/除法 - 左操作数除以右操作数B / A等于2
取余 - 左操作数除以右操作数的余数B%A等于0
++自增: 操作数的值增加1B++ 或 ++B 等于 21(区别详见下文)
--自减: 操作数的值减少1B-- 或 --B 等于 19(区别详见下文)

4. 自增自减运算符

4.1 什么是自增自减运算符

  1. 自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符需要两个操作数来进行运算,而自增自减运算符一个操作数
  2. 前缀自增自减法(++a,--a):先进行自增或者自减运算,进行表达式运算
  3. 后缀自增自减法(a++,a--):先进行表达式运算进行自增或者自减运算

4.2 代码实例

public class selfAddMinus{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        int b = 5;
        int x = 2*++a;
        int y = 2*b++;
        System.out.println("自增运算符前缀运算后a="+a+",x="+x);
        System.out.println("自增运算符后缀运算后b="+b+",y="+y);
    }
}

5. 关系运算符

运算符描述例子
==检查如果两个操作数值是否相等,如果相等则条件为真(A == B)为假
!=检查如果两个操作数值是否相等,如果值不相等则条件为真。(A != B) 为真
>检查左操作数的值是否大于右操作数的值,如果是那么条件为真。(A> B)为假
<检查左操作数的值是否小于右操作数的值,如果是那么条件为真。(A <B)为真
>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。(A> = B)为假
<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。(A <= B)为真

6. 位运算符

如果相对应位都是1,则结果为1,否则为0(A&B),得到12,即0000 1100
|如果相对应都是 0,则结果为 0否则为 1(A | B)得到61,即 0011 1101
^如果相对应值相同,则结果为0否则为1(A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成11变成0(〜A)得到-61,即1100 0011
<<按位左移运算符。左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>>按位右移运算符。左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

7. 逻辑运算符

7.1 逻辑运算符表格

&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真(A && B)为假
||称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真(A||B)为真
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false!(A&&B)为真

7.2 短路逻辑运算符

  1. 当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作false时,其结果就必定是false,这时候就不会判断第二个操作
  2. 当使用逻辑或运算符时,两个操作符只要有一个为true结果就是true,所以,当判断第一个操作true时,第二个不会判断

8. 赋值运算符

操作符描述例子
=简单赋值运算符,将右操作数的值赋给左侧操作数C = A + B将把A + B的值赋给C
+ =加和赋值操作符,它把左操作数右操作数相加赋值左操作数C + = A等价于C = C + A
- =减和赋值操作符,它把左操作数和右操作数 相减赋值左操作数C - = A等价于C = C - A
* =乘和赋值操作符,它把左操作数右操作数相乘赋值左操作数C _ = A等价于C = C _ A
/ =除和赋值操作符,它把左操作数右操作数相除赋值左操作数C / = A,等价于 C = C / A
(%)=取模和赋值操作符,它把左操作数右操作数取模赋值左操作数C%= A等价于C = C%A
<< =左移位赋值运算符C << = 2等价于C = C << 2
>> =右移位赋值运算符C >> = 2等价于C = C >> 2
&=按位与赋值运算符C&= 2等价于C = C&2
^ =按位异或赋值操作符C ^ = 2等价于C = C ^ 2
| =按位或赋值操作符C | = 2等价于C = C | 2

9. 条件运算符(?:)

9.1 什么是条件运算符

  1. 条件运算符也被称为三元运算符
  2. 该运算符有3个操作数,并且需要判断布尔表达式的值
  3. 该运算符的主要是决定哪个值该赋值给变量

9.2 代码实例

int a = b > 0 ? 4 : 5;

10 instanceof 运算符

10.1 什么是 instanceof 运算符

  1. 该运算符用于操作对象实例检查该对象 是否是一个特定类型(类类型或接口类型)

  2. instanceof运算符使用格式如下

    1. ( Object reference variable ) instanceof (class/interface type)
  3. 如果运算符左侧变量指的对象操作符右侧类接口(class/interface)的一个对象,那么结果为真

10.2 代码实例

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

11. Java运算符优先级

11. 1 什么是运算符优先级

  1. 多个运算符 出现一个表达式中,谁先谁后呢?
  2. 这就涉及运算符优先级别的问题
  3. 在一个多运算符的表达式中,运算符优先级不同导致最后得出的结果差别甚大

11.2 运算符优先级表

下表中具有最高优先级运算符在的表的最上面最低优先级在表的底部

类别操作符关联性
后缀() [] . (点操作符)左到右
一元expr++  expr--从左到右
一元++expr --expr + - ~ !从右到左
乘性* /%左到右
加性+ -左到右
移位>> >>>  <<左到右
关系>  >=  <  <=左到右
相等== !=左到右
按位与左到右
按位异或^左到右
按位或|左到右
逻辑与&&左到右
逻辑或| |左到右
条件?:从右到左
赋值= + = - = * = / =%= >> = << =&= ^ = | =从右到左
逗号左到右

🎈看完了不妨给我点个赞吧,👉你的支持,是我每天更新的动力...