导航🌌
目录
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。主要有以下几类:
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| + | 正号 | +7 | 7 |
| - | 负号 | b = 11; -b | -11 |
| + | 加 | 9 + 9 | 18 |
| - | 减 | 10 - 8 | 2 |
| * | 乘 | 7 * 8 | 56 |
| / | 除 | 9 / 9 | 1 |
| % | 取模(取余) | 11 % 9 | 2 |
| ++ ++ | 自增(前置):先运算后取值 自增(后置):先取值后运算 | a = 2; b = ++a a = 2; b = a++ | a = 3; b = 3 a = 3; b = 2 |
| -- -- | 自减(前置):先运算后取值 自减(后置):先取值后运算 | a = 2; b = --a a = 2; b = a-- | a = 1; b = 1 a = 1; b = 2 |
| + | 字符串相加 | "Java" + "hehe" | "Javahehe" |
比较特殊的就是底下的字符串相加,可试着运行以下代码体验一下:
- public class Test{
- public static void main(String[] args){
- int n = 1992;
- String str1 = n + "";//int型转String类型
- String str2 = "Java" + "hehe";
-
- System.out.println(str1);
- System.out.println(str2);
- System.out.println("Java" + "hehe");
- }
- }
输出结果:
细节说明:
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| == | 相当于 | 8 == 7 | false |
| != | 不等于 | 8 != 7 | true |
| < | 小于 | 8 < 7 | false |
| > | 大于 | 8 > 7 | true |
| <= | 小于等于 | 8 <= 7 | false |
| >= | 大于等于 | 8 >= 7 | true |
| instanceof | 检查是否是类的对象 | "javahehe" instanceof String | true |
细节说明:
| a | b | a & b | a && b | a | b | a || b | !a | a ^ b |
|---|---|---|---|---|---|---|---|
| true | true | true | true | true | true | false | false |
| true | false | false | false | true | true | false | true |
| false | true | false | false | true | true | true | true |
| false | false | false | false | false | false | true | false |
细节说明:
| 名称 | 语法特点 |
|---|---|
| 短路与 && | 如果第一个条件为false,则第二个条件不会判断(执行),最终结果为false,效率高 |
| 逻辑与 & | 不管第一个条件是否为false,第二个条件都要判断(执行),效率低 |
| 短路或 || | 如果第一个条件为true,则第二个条件不会判断(执行),最终结果为true,效率高 |
| 逻辑或 | | 不管第一个条件是否为true,第二个条件都要判断(执行),效率低 |
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| = | 赋值 | a = 7 | 7 |
| += | 加等 | a = 7;a += 7 | a = 14 |
| -= | 减等 | a = 7;a -= 7 | a = 0 |
| *= | 乘等 | a = 7;a *= 7 | a = 49 |
| /= | 除等 | a = 7;a /= 7 | a = 1 |
| %= | 模等 | a = 7;a %= 7 | a = 0 |
细节说明:
条件表达式 ? 表达式1 : 表达式2;
运算规则:若条件表达式为true,运算后的结果是表达式1;若条件表达式为false,运算后的结果是表达式2
细节说明:
| 运算方向 | 运算符 |
|---|---|
| . {} [] ; , | |
| R ——> L | ++ -- ~ ! |
| L ——> R | * / % |
| L ——> R | + - |
| L ——> R | << >> >>> 位移 |
| L ——> R | < > <= >= instanceof |
| L ——> R | == != |
| L ——> R | & |
| L ——> R | ^ |
| L ——> R | | |
| L ——> R | && |
| L ——> R | || |
| L ——> R | ? : |
| R ——> L | = *= /= %= |
| += -= <<= >>= | |
| >>>= &= ^= != |
对于整数,常有以下四种表示方式:
规则:从最低位(最右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和
实例:将0b1011转成十进制的数,0b1011 = 1 * 2^(1-1) + 1 * 2^(2-1) + 0 * 2^(3-1) + 1 * 2^(4-1) = 1 + 2 + 0 + 8 = 11
规则:从最低位(最右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
实例:将0234转成十进制的数,0234 = 4 * 8^0 + 3 * 8^1 + 2 * 8^2 = 4 + 24 + 128 = 156
规则:从最低位(最右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和
实例:将0x23A转成十进制的数,0x23A = 10 * 16^0 + 3 * 16^1 + 2 * 16^2 = 10 + 48 + 512 = 570
规则:将该十进制数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。(一般使用短除法操作,容易看清楚数据)
规则:将该十进制数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。(一般使用短除法操作,容易看清楚数据)
规则:将该十进制数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。(一般使用短除法操作,容易看清楚数据)
规则:从低位开始,将二进制数每三位一组,转换成对应的八进制数即可
实例:将0b11010101转成八进制数,0b11(3)010(2)101(5) => 0325
规则:从低位开始,将二进制数每四位一组,转换成对应的十六进制数即可
实例:将0b11010101转成八进制数,0b1101(D)0101(5) => 0xD5
规则:将八进制数每1位,转换成对应的一个3位的二进制数即可
实例:将0237转换成二进制数,02(010)3(011)7(111) = 0b10011111
规则:将十六进制数每1位,转换成对应的4位的一个二进制数即可
实例:将0x23B转换成二进制数,0x2(0010)3(0011)B(1011)
学习记录:
- 📆本篇博客整理于2022.7.17~2022.7.20
- 🎓作者:如何写出最优雅的代码
- 📑如有错误,敬请指正🌹🌹
- 🥂关注一波不迷路!如果觉得写的不错,看完了别忘了点赞和收藏啊,感谢支持😏😏