2021年08月14日 23:54 __ _ _ _ _

大家好,我是小 Bob,一个关注软件领域而又执着于计算机底层的开发者~

大家好呀,昨天我们说了 Java的数据类型 ,类型和其它语言都相差不大,为什么这么说呢,我们得记住Python还有个复数类型哦。

这里主要给大家讲解 Java运算符的分类和使用

文章配图

一.运算符分类

文章配图

说到 运算符
,我们可以先了解一下它。运算符简单来说,就是对常量或变量进行操作的符号。在运算符中,我们会经常用到表达式,表达式可以简单认为是运算符和操作数的组合,其中操作数可以是常量、变量或其它表达式,不同运算符连接的表达式体现的是不同类型的表达式。

比如:Y=X*(Z+10)为表达式,那么其中的(Z+10)为子表达式。

接下来说说运算符的分类,按 功能分类我们一般分为赋值运算符、算术运算符、关系运算符和逻辑运算符按操作数分类则有单目运算符、双目运算符、三目运算符。

文章配图

二.运算符使用

文章配图

首先我们先来讲讲最简单的 赋值运算符,一般形式为** 变量名=表达式 ** ,即将右边的值赋值给左边的变量。

再就是算术运算符,在Java中提供了算术运算符来实现数学上的算术运算功能。

运算符
| 说明
| 举例

—|—|—
+
| 加法运算符
| 1+1=2

-
| 减法运算符
| 1-1=0

| 乘法运算符 | 1*1=1

/
| 除法运算符
| 1/1=1

%
| 取余运算符,求操作数相除的余数。
| 4%2的取余为0

复合运算符:Java中有些表达式可以通过符合运算符进行简化。

复合运算符 由赋值运算符和算术运算符组合形成,用于对变量自身执行算术运算,比如a=a+1可以简化为a+=1。

运算符 说明 举例
+= 加法运算 int a=1;a+=1等同于a=a+1;a=2;
-= 减法运算
int a=1;a-=1等同于a=a-1;a=0;
*= 乘法运算
int a=1;a*=1等同于a=a*1;a=1;
/= 除法运算
int a=1;a/=1等同于a=a/1;a=1;
%= 模运算 int a=1;a%=1等同于a=a%1;a=0;

复合运算符在使用时效率更高,运算更快,推荐使用。

推荐使用复合运算符的小作用:

  • 当需要对变量自身进行运算时,建议使用复合运算符,效率会远高于算术运算符。

  • 复合赋值运算符的结合性都是自左向右的。

  • Java表达式中使用圆括号与代数中的圆括号作用相同,能增强运算符的优先级。使用圆括号还能增强源代码的可读性,使得计算顺序更加清晰。

说完了复合运算符,这里介绍 自增自减运算符。 ** 相关语法:++变量名 或 变量名++ –变量名 或 变量名– **

那为什么符号放前面和后面会有区别呢?

如果将自增或自减运算符放在变量前面,称之为前缀运算,前缀运算执行的是”先运算后使用的规则。

比如我们用int a=1;int b=++a;等同于a=a+1;int b=a;

相反,如果将自增或自减运算符放在变量后面,称之为后缀运算,后缀运算执行的是”先使用后运算规则。

关系型运算符

1.Java提供了关系运算符,用于进行比较运算

2.关系运算的结果为Boolean类型

运算符 说明 举例

| 大于 | 88>100,结果为false。
< | 小于
| 88<100,结果为true。
= | 大于或等于
| 88>=100,结果为false。
<= | 小于或等于
| 88<=100,结果为true。
== | 等于
| 88==100,结果为false。
!= | 不等于
| 88!=100,结果为true。

实例如下:


public class test {    public static void main(String[] args) {        boolean bool =50<60;        System.out.println(bool);    }}

运行结果如下:

文章配图

至于 逻辑运算符,也叫** 短路运算符 **
,它把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是true或false。

运算符
| 含义

—|—
&& | 与运算符,表示连接条件同时成立
|| | 或运算符,表示连接的条件有一个成立即可
! | 非运算,取反

实例:


public class test {    public static void main(String[] args) {        boolean bool1 =1>2&&2>1;        boolean bool2 =1>2||2>1;        boolean bool3 =!(1>2||2>1);        System.out.println(bool1);        System.out.println(bool2);        System.out.println(bool3);    }}

运行结果如下:

文章配图

结果为bool1为false,bool2为true,bool3为false

说完上面的逻辑运算符,那么三元运算符也是在代码中经常使用到的。“?:”也是Java中唯一一个三目运算符。

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

条件表达式的结果由布尔表达式决定,如果布尔表达式的值为true,则返回表达式1的值,反之返回表达式2的值。

实例:


public class test {    public static void main(String[] args) {        int score =61;        String s = score>=60 ? "及格" :"不及格";        System.out.println(s);    }}

结果为及格

另外 instanceof运算符我们在别的语言几乎没看到过,instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类,它用于判断运算符前面的引用变量是否是运算符后面的类型,或其子类型的实例。实例:


public class test {    public static void main(String[] args) {        String s = "java";        boolean bool1= s instanceof String;        System.out.println(bool1);    }}

结果为true

判断变量是否为某种类型

最后我们来讲一下 位运算符
,位运算符起源于C语言的低级操作(因为位运算的操作对象是二进制位),当然这种操作对于计算机而言是非常简单且直接、友好的。

在简单的低成本处理器上,通常位运算比除法快很多,比乘法快几倍,有时比加法也快一些。

运算符
| 说明
| 举例

—|—|—
& | 与 | 操作数相同都为1,那么结果为1
| | 或 | 操作数相同位为1,那么结果为1
^ | 异或 | 操作数相同位不相同,结果为1
<< | 左移 | 若二进制数全部左移N位,高位丢弃,低位补0

| 右移 | 若二进制位全部右移N位,若值为正,则在最高位插入0,若值为负,则在最高位插入1

| 无符号右移 | 忽略符号位,空位都以0补齐,正数>>>运算的时候和>>一样,区别在于负数运算

下面我们看看在代码中这些运算符的优先级是怎样。

运算符的优先级:

顺序
| 说明

—|—
1
| 括号,()和[]
2 | 一元运算符,如++,–和!
3 | 算术运算符,如*、/、+、-、%
4 | 关系运算符,如>、>=、< <= ==和!=
5 | 逻辑运算符,如&&,||
6
| 条件运算符和赋值运算符,如:?:、=、*=、/=、+=、-=

那么最后说一下按位取反运算符:

例如,数字42,它的二进制代码为:00101010,经过按位非运算成为11010101.

继续干Java~

文章配图

文章配图

为你,千千万万遍

往期推荐:

聊聊Java数据类型的那些事 2021-08-13
文章配图

七月碎碎念 || 从Codeer到韭菜,小编经历了什么? 2021-07-31
文章配图

这些音乐的简约模式,你Get了吗? 2021-08-05
文章配图

一键三连,就差你了
文章配图

预览时标签不可点

阅读

修改于




__