操作数:参与运算的数据被称为操作数。
表达式:使用运算符将若干个操作数连接起来的整体。 每一个操作数也可以被看成一个简单的表达式。
返回值:表达式运算完成之后都会有一个返回结果。
首先,运算符按照操作数的数量可以分为三类:
一元运算符:操作数只有一个的运算符。
二元运算符:操作数有两个的运算符。
三元运算符:操作数有三个的运算符。
下面介绍几个常用的运算符
+:
既是一元运算符:代表是一个正数(通常是省略掉的)。
也是二元运算符:对两个操作数实现相加的功能。
-:
既是一元运算符:代表是一个负数。
也是二元运算符:对两个操作数实现相减的功能。
*:
一个二元运算符:对两个操作数实现乘的功能
/(斜杠):
二元运算符:对两个操作数实现相除的功能
特点:
如果是两个整数相除,结果只取整数部分。不遵循四舍五入。
如果有一个操作数是浮点数,结果就是浮点数。
应用:可以将一个数的最高位的数值求出。
%(百分号)
a%b: a除以b所得到的余数
如果是正数:那么得到的结果[0~b) 包含0 ,不包含b
应用:可以和 / 结合着使用,将某一个数的所有的位都求出来。
重点来了。在我们运行程序以及面试基础的过程中,往往都会被问到:++和--两种运算符
++
功能:对指定的变量实现自增一。
一元运算符。
两种模式:
1:前缀模式:先自增后返回。
2:后缀模式:先返回后自增。
参与算术运算的数据都是表达式的返回值参与运算。
--
功能:对指定的变量实现自减一。
一元运算符。
两种模式:
1:前缀模式:先自减后返回。
2:后缀模式:先返回后自减。
=:
作用:将运算符右边的表达式的返回值赋值给左边的变量或者是final 修饰的变量。
左边:变量,或者是 final修饰的变量
右边:可以是任意表达式(返回的值的类型要和右边的兼容)。
+=
-=
*=
/=
%=
....
两点不同
1:使用复合赋值运算符,生成的class文件相对小一丢丢。占用内存少一丢丢。
2:复合赋值运算符中,隐含了一个强制类型转换 ,转换为当前运算符左边变量的类型。(存在一定的安全隐患)。
作用:将对象的属性或者变量进行比较
哪些运算符:
>
<
>=
<=
==
!=
关系运算表达式的返回值为 boolean 值 布尔值。
> < >= <= 进行比较运算的必须都是 数值类型,或者是与数值类型兼容的类型 char。
== java支持的8种基本数据类型都可以。
比较的是 运算符 左右量变的表达式的返回值是否相等。
float 、double。 通常不建议使用==比较float 和 double。 本身float 和 double 类型不是为了精确计算而设计的。 精确计算使用一个叫做大数的类。
!= java支持的8种基本数据类型都可以。
比较的是 运算符 左右量变的表达式的返回值是否不相等。
逻辑运算符在实际开发过程中用到的地方还是特别多的,往往也是比较容易混淆的,下面重点介绍一下:
有六个逻辑运算符:
1:逻辑与 &
2:逻辑或 |
3:逻辑异或 ^
4: 逻辑非(逻辑反) !
5: 短路与 &&
6:短路或 ||