运算符主要包括以下几种
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 类型判断运算符
1.算术运算符
算术运算符,是进行数学计算的符号
符号 | 描述 |
---|---|
+ | 加法 |
– | 减法 |
* | 乘法 |
/ | 除法 |
% | 取余 – 取得余数 |
++ | 自增: 变量的值加1 |
— | 自减: 变量的值减1 |
1.加号( + )的特殊用法
不单可以进行数学运算,还可以用于字符串的连接,比如
String s = "hello"+"world"; // s 的值是 helloworld
2.运算时发生自动转换
在进行运算时,会自动将数据类型转换为 2 者中精度最高的数据类型
int a = (int)5.3 * 3; // 计算时,会自动转换为 double, 想要 int 必须强制转换
3.除法的规则
除法,得到的是整数,若想要余数,需要使用取余运算( % )
int s = 5/2; //得到的结果是 2,是一个 int 类型的数
4.自增自减的先后
int a = 10,b=10; // 定义 2 个变量,a,b均等于10
int a1 = 5*++a; // a1 是先 ++,则等于11,再 * 5等于 55
int b1= 5*b++; // b1是先使用 5*10, 则等于50
2.关系运算符
关系运算符,运算的结果是一个布尔值, true, false
符号 | 描述 |
---|---|
== | 恒等于( 等于 ) |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
3.位运算符
位运算符,是取数据的 “二进制位” 进行操作的,用到的较少
符号 | 描述 |
---|---|
& | 如果相对应位都是1,则结果为1,否则为0 |
| | 如果相对应位都是 0,则结果为 0,否则为 1 |
^ | 如果相对应位值相同,则结果为0,否则为1 |
〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 |
3.逻辑运算符
符号 | 描述 |
---|---|
&& | 与运算符,2者均为真,结果才为真 |
| | | 或运算符,2者中的任一个为真即为真 |
! | 取非运算符 |
逻辑与,逻辑或运算,会出现 “短路” 情况
1.如果已知前一个条件为假,则与运算后一个条件不计算
2.如果已知前一个条件为真,则或运算后一个条件不计算
4.赋值运算符
符号 | 描述 |
---|---|
= | 右侧赋值给左侧 |
+ = | 左侧 = 左侧+右侧 |
– = | 左侧 = 左侧-右侧 |
* = | 左侧 = 左侧*右侧 |
/ = | 左侧 = 左侧/右侧 |
%= | 左侧 = 左侧%右侧 |
<< = | 左侧 = 左侧<<右侧 |
>> = | 左侧 = 左侧>>右侧 |
&= | 左侧 = 左侧&右侧 |
^ = | 左侧 = 左侧^右侧 |
| = | 左侧 = 左侧|右侧 |
5.三元运算符
有三个操作数,可用于替代简单的 if 语句
数值类型 变量名 = 表达式 ? 真 : 假
例如,让 c 取 a, b 中的最大值
int a=1,b=2; //定义 a=1, b=2
int c=a>b?a:b;// 如果a>b成立,则c=a,否则c=b
6.类型判断运算符
instanceof 是一个特殊的运算符,可以判断某个值是否属于某个类型
例子:
Integer name = 1;//定义一个变量为 interger 类型,值为 1
boolean result = name instanceof Integer; // result==>true
该运算符,只能用于封装类型