java中运算符的类别有哪些(详细总结)

2022-12-29 0 914

序言

在前一则该该文,壹哥给他们传授了Java正则表达式间的切换,主要包括手动隐式、强制性隐式、暗含的强制性隐式等难题。且在上一则该该文,我还单纯地给他们提及了Java的类型提高。在类型提高的事例中,他们牵涉到了Java里的操作符。有的是爸爸妈妈会很疑惑,Java里的操作符都有什么样呢?加法那些记号都有吗?事实上,Java中的操作符更为重要多于加法哦,除了许多其它的操作符。所以那时壹哥就用一则专门的该文,给他们传授操作符有关的科学知识。#操作符#

——-爱抚已略过,精采即已经开始——-

概要约6400】字,不说废话,只讲能让你教给控制技术、知道基本上原理的纯蔬果!责任编辑暗含多样的事例及新闻标题,让你更快地认知和利用该文的控制技术基本上概念,并能给你增添具备足够多感悟的思索……

一、操作符概要

1. 简述

笔记本电脑的谱代或许被称作”排序机“,原因在于它最基本上、最起先的促进作用就是展开微积分演算。为的是同时实现排序机能,Java为他们提供更多了多种不同操作符用作各式各样排序,比如说微积分操作符(+ – * /)、 亲密关系操作符(< > ==)、方法论操作符、位操作符、前提操作符之类。

2. 分类

如果他们把操作符按照机能来分,能分为微积分运算符、亲密关系操作符、赋值操作符、方法论操作符、位操作符、三目操作符、逗号操作符等各式各样操作符。

如果按照操作数的数目来分,能把那些操作符分为单目操作符、双目操作符和三目操作符,分别对应于1个、2个、3个操作数。

java中运算符的类别有哪些(详细总结)

3. 操作符的目

他们把操作符能够连接操作数的个数,称作操作符的目,Java中操作符的目有三种:

单目操作符:只能连接一个操作数,如“+ +”、”–”;

双目操作符:能连接两个操作数,Java语言中多数操作符都属于双目操作符,如“+、-、*”等;

三目操作符:能连接三个操作数,Java语言中多于一个三目操作符,即前提操作符”? :“。

4. 操作符的优先级

操作符的优先级是指在表达式中出现多个不同的操作符,在展开排序时操作符执行的先后次序。比如说微积分操作符中,乘除操作符的优先级高于加减操作符的优先级。在Java语言中,不同的操作符具备不同的优先级,他们在开发时要优先处理优先级高的操作符。参考下图:

java中运算符的类别有哪些(详细总结)

这么多的优先级规则,你很难记得住,其实你也不必记忆,他们在使用时直接加括号就能了,和微积分里的规则一样。

5. 操作符的结合方向

操作符的结合方向又称作结合性,是指当一个操作数连接两个相同优先级的运算符时,会按操作符所规定的结合方向展开处理。Java中各操作符的结合性分为两种,分别为左结合性(自左向右)和右结合性(自右向左)。比如说常见的+、-、*、/等演算就是自左向右,而Java里的=赋值演算,则是从右向左。

在Java中,所有的是微积分演算都是从左向右展开演算的,其它的大部分演算也是遵守从左向右的规则。但一元操作符,赋值操作符和三目操作符例外,他们是从右向左展开演算的。

了解完那些基本上的科学知识之后,接下来壹哥就通过一些代码事例,分别给他们传授一下这几种操作符的用法。

二、微积分操作符

1. 基本上概念

微积分操作符与他们在微积分中学习的排序记号一样,主要用在微积分表达式中,常见的微积分操作符有:

+ – * / % ++ —

这几个记号的机能如下表所示:

java中运算符的类别有哪些(详细总结)

2. 事例

壹哥在这里设计了如下事例,他们要跟着练习哦。

2.1 基本上演算

java中运算符的类别有哪些(详细总结)

他们要特别注意,整数由于存在范围的限制,如果排序结果超出了范围,就会产生溢出。而溢出不会出错,但会得到一个奇怪的结果。

2.2 除零微积分异常

另外壹哥还要提醒他们一下,在Java中的除法和取模演算,和微积分中的要求一样,是不能做除零操作的,否则在运行时会产生异常哦!这里会产生java.lang.ArithmeticException: / by zero的异常。

java中运算符的类别有哪些(详细总结)

2.3 类型提高(重点)

他们在展开数值排序时,要注意类型提高的难题。当微积分表达式中包含不同的基本上类型值时,整个微积分表达式的类型会展开手动提高。基本上的提高规则为:

为的是排序方便,Java会将小于4个字节的类型,在排序时将其隐形提高到int类型。所以byte类型、short类型和char类型会被提高为int类型,不管是否有其它类型参与演算。也就是说,整个表达式的类型会手动提高到与表达式中最高等级的操作数相同的类型。所以两个数值展开排序,结果取决于范围更大的那个数!比如说两个int排序,结果是int。而int与浮点数展开排序,则结果为浮点数,即结果变成更大范围的类型,这就是类型提高!

提高等级顺序为:

byte、short、char –> int –> long –> float –> double

所以由于类型提高的原因,他们在开发时很少使用byte或者short来定义整数。也很少会使用char类型定

义字符,而是使用字符串类型,更不会使用char类型做微积分演算。

2.4 +号的两个促进作用

Java中的+号有2个机能,一是能展开加法操作,二是能展开字符串拼接。尤其是在展开字符串拼接时,要考虑自左向右的结合性。当字符串在前,数字在后,执行字符串拼接操作;当数字在前,字符串字后,先排序出结果,再展开字符串的拼接。

java中运算符的类别有哪些(详细总结)

2.5 %的促进作用

%是取余记号,他们能展开取余演算,也叫做取模演算。另外%在Java中不但能对整数展开取模,还能对double展开取模操作。

java中运算符的类别有哪些(详细总结)

2.6 自增与自减

对初学者来说,有两个记号可能会让你比较懵圈,一个是++,一个是–,这两个记号分别叫做自增和自减操作符。++是自增记号,根据++在变量前或变量后的位置不同,也具备不同的特点,–自减记号同样如此。++和–具备如下特点:

++和– 既能放在变量的后边,也能放在变量的前边;

单独使用时, ++和– 无论是放在变量的前边还是后边,结果都是一样的;

参与操作时,如果放在变量的后边,会先使用变量参与操作,再取变量的值展开++或者–;

参与操作时,如果放在变量的前边,会先取变量的值展开++或者–,后使用变量参与操作;

多于变量才能使用自增/自减操作符,常量不能使用自增与自减记号,因为常量不允许被修改。

java中运算符的类别有哪些(详细总结)

【++变量】变量先+1,然后使用变量+1之后的值;【变量++】先使用变量原来的值,表达式结束时给变量+1。所在在本事例中,如果++在变量之后,比如说d++,具备“先使用,再自增”的特点。如果++在变量之前,比如说++d,具备“先自增,再使用”的特点。–自减记号也是如此。壹哥不建议初学者把++演算混入到常规演算中,容易把你给搞懵逼哦。

三、赋值操作符

1. 基本上概念

在Java中,“=”是赋值操作符,而不是他们通常认知中的“等号”。赋值操作符用作将“=”右侧表达式的结果,赋值给“=”左侧的变量。另外,除了“=”这个赋值记号之外,除了另外几个扩展的赋值记号,所以目前常用的赋值记号有如下几个:

= += -= *= /= %=

java中运算符的类别有哪些(详细总结)

2. 事例

2.1 赋值事例

以下是几个赋值操作符的基本上使用事例。在下面的事例中,他们要注意除法的排序结果哦。

java中运算符的类别有哪些(详细总结)

2.2 扩展事例

为的是让他们更快地认知赋值操作符,壹哥再给他们扩展一个事例。

java中运算符的类别有哪些(详细总结)

在这个事例中,他们一定要注意类型提高的难题。两个short变量s1和s2,s1+s2时会展开类型提高变成int,所以必须对结果展开强制性隐式才行,如下图所示:

java中运算符的类别有哪些(详细总结)

但是当他们使用s2+=s1语句时,虽然排序结果与s2=s1+s2是相同的,但内部的执行基本上原理却不同,这原因在于扩展的赋值操作符都暗含了强制性隐式s2 = s1 + s2;此行代码会报错,这原因在于演算中s变量会提高为int类型,演算结果int赋值给short可能会损失精度。

而在s2+=s1语句中就没有难题,因为这里暗含了强制性隐式,相当于s2 = (short) (s2 + s1);不用展开再额外强制性隐式,这一点他们一定要注意!

四、亲密关系操作符

1. 基本上概念

在Java中,亲密关系操作符,又叫做比较操作符, 或者叫做布尔操作符,主要是用作比较两个表达式的结果。常用的赋值记号有如下几个:

> >= < <= == !=

java中运算符的类别有哪些(详细总结)

2. 事例

接下来他们再通过一些代码事例,来学习一下亲密关系操作符的用法吧。他们在使用比较演算时,最终都会得到一个布尔类型的值。且在展开比较演算时,一定要注意其优先级。

java中运算符的类别有哪些(详细总结)

五、方法论操作符

1. 基本上概念

Java中的方法论操作符, 主要有3个:方法论与&&、方法论或||、方法论非!,如下所示:

&& || !

Java中的方法论操作符,其实和微积分中的与、或、非意思一致。 方法论操作符大多数会和其它的操作符一起使用,主要做一些单纯或复杂的方法论演算。且通常都会和 if、for等方法论表达式一起使用,使用格式为:表达式1 方法论操作符 表达式2

java中运算符的类别有哪些(详细总结)

2. 事例

接下来他们通过一个事例来演示方法论操作符该如何使用。

java中运算符的类别有哪些(详细总结)

对于上述代码中的方法论操作符,壹哥再给他们细说一下,他们要特别注意“短路与”和“短路或”的基本上概念:

&&:方法论与(短路与)。所有的是结果为true,最终的结果才是true。&&属于短路与:方法论与遵守短路求值的规则,即表达式1为假,表达式2就不再执行。即如果左边的表达式为真,右边的表达式就会执行;如果左边为假,右边不执行。

||:方法论或(短路或)。所有的是结果只要有一个为true,最终结果就是true。||属于短路或:遵守或也遵守短路求值的规则,即表达式1为真,表达式2就不在执行,否则就执行表达式2。

!: 方法论非。对结果展开取反。

&:按位与。无论前提表达式的结果如何,都会执行完整个表达式,所在无论左边的表达式是真假,右边的表达式都要执行

|:按位或。无论前提表达式的结果如何,都会执行完整个表达式。无论左边的表达式是真假,右边的表达式都要执行。

六、位操作符

1. 基本上概念

他们知道,对任何编程语言而言,最终的操作都是用二进制表示,因为排序机的底层只认识二进制。而八进制、十进制或者十六进制,都是为的是让开发人员方便开发而创立的。在Java中,也能根据数的进制展开演算,这就需要位操作符的参与了。常用的位操作符有如下几个:

& | ^ ~ << >> >>>

java中运算符的类别有哪些(详细总结)

注意:& 和 | 既是位操作符,也能展开方法论演算。

2. 事例

接下来他们通过一个事例来演示位操作符该如何使用。

java中运算符的类别有哪些(详细总结)

针对上述代码,壹哥给他们解释一下:

2.1 按位与

按位与&的特点:相同数位都是1,最终的结果才是1。基本上规则如下:

java中运算符的类别有哪些(详细总结)
java中运算符的类别有哪些(详细总结)

2.2 按位或

按位或|的特点:只要相同数位上有1,结果就是1。

java中运算符的类别有哪些(详细总结)

2.3 按位异或

按位亦或的特点:相同数位相同为0,不同为1。

java中运算符的类别有哪些(详细总结)

2.4 按位取反

按位取反的特点:将每一位上的数字取反。结论:数字+1取反。

java中运算符的类别有哪些(详细总结)

2.5 左移

左移<<的特点:将二进制数位整体向左移动N位,低位补0。

java中运算符的类别有哪些(详细总结)

2.6 右移

右移>>的特点:将二进制数位整体向右移动N位。如果是正数补0,负数补1。

java中运算符的类别有哪些(详细总结)

2.7 无记号右移

无记号右移>>>的特点:将二进制数位整体向右移动N位。高位补0

java中运算符的类别有哪些(详细总结)

PS:关于进制切换、原码、反码、补码等内容,壹哥会在后面的该该文专门针对传授!

七、前提操作符

1. 基本上概念

前提操作符,又叫做三目操作符,目前在 Java 中多于一个三目操作符 ? :三目演算的语法格式如下:

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

许多时候,三目演算都是 if 和 else 的简写。

2. 事例

java中运算符的类别有哪些(详细总结)

三目操作符虽然能嵌套使用,但他们在开发时尽量不要这么使用,这样的代码可读性很差。

八、类型比较操作符

在Java中除了一个类型比较操作符instance of,用作对Java的对象类型展开比较,能判断定义的变量是否属于某个类,该类能是(接口、抽象类)。语法格式如下:

boolean = 变量 instanceof 类

因为目前他们还没有学习Java面向对象的内容,所以这里他们先做个了解,知道有这么一个记号就能了。后面壹哥会在讲面向对象时,再单独对该记号的使用展开传授。

——————————正片已结束,来根事后烟——–

九、结语

至此,壹哥就把Java里的各式各样常见操作符给他们传授完毕了,现在你学会了吗?其实那些操作符记忆起来并不复杂,微积分操作符的含义和使用与微积分里的一样,这根本就不用单独记忆。他们只需要去记一些较为特殊的操作符用法和特点,比如说三目操作符、方法论操作符、位操作符等。

十、今日作业

第一题

java中37.2%10的演算结果是多少?评论区告诉我吧

第二题

00101010(&)00010111语句的执行结果是哪个?

A. 00000010 B. 11111111 C. 00111111 D. 11000000

第三题

如何高效地排序出2的幂次方?评论区给出你的同时实现思路

有关推荐:

IntelliJ IDEA 下载安装及配置使用教程(图文步骤详解)

Eclipse安装和配置环境教程(图文详解)

从零已经开始学Java系列之如何使用记事本编写java程序

从零已经开始学Java系列之Java语言标识符的命名规范(超详尽传授)

举报/反馈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务