运算符主要包括以下几种
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 类型判断运算符
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
该运算符,只能用于封装类型
