在最底层,Java中的数据是通过使用操作符来操作的。
1.操作符
- 用于操作数,接受一个或多个参数,并生成一个新值.
- 副作用:操作符可能会改变操作数自身的值.
- 能改变其操作数的操作符,最普遍的用途是用来产生副作用.
- 使用有副作用的操作符和没有副作用的操作符,生成的值没有什么区别.
2.优先级
- 决定计算顺序.
3.赋值
- "=":将右边的值附给左边的变量.
- 别名现象:是Java操作对象的一种基本方式.(对象传递的是引用,出现不同的名字)
4.算术操作符
- "+", "-", "*", "/", "%"(向下取整)
- 一元加减号:编译器自动识别,规范加括号.(eg:x = a*(-b))
- 一元减号:改变数据的符号.
- 一元加号:与一元减号对应,将较小类型的操作数提升为int.
5.自增,自减
- "i++","++i","i--","--i"
- 除涉及赋值的操作符以外,唯一具有"副作用"的操作符.
- 前缀:先执行运算,在生成值.
- 后缀:先生成值,在执行运算.
6.关系操作符
- ">", "<", ">=", "<=", "==", "!="
- 返回true/false
- equals :默认比较引用,重写比较内容,不适合用于基本类型.
- ==:比较引用.
7.逻辑操作符
- "&&", "||", "!"
- 短路(潜在的性能提升).
8.直接常量
- "0x?"(十六进制),"0?"(十进制),"?l/L"(浮点型),"?d/D"(双精度型)
- 指数记数:e 代表 "10的幂次".
9.按位操作符
- "&", "|", "~", "^"
- 可与"="联合使用.
10.移位操作符
- "<<"(左移,低位补0), ">>"(有符号右移,高位正插0,负插1), ">>>"(无符号右移,高位插0)
- 只可用来处理整数类型.
- 可与"="联合使用.
11.三元运算符
- boolean-exp ? value0 : value1;
12.字符串操作符
- "+", "+=".
- String 重载了 "+","+=".
- 操作符重载:java不能实现自己的重载操作符.
- 如果表达式以一个字符串起头,那么后续所有操作数都必须是字符串类型(编译器会把双引号内的字符序列自动转成字符串).
13.类型转换操作符
- 类型转换:(cast).
- 向上转型:强制类型转换.
- 向下转型:不必显示地进行转换.
- 截尾:向下取整.
- 舍入:Math.round(),四舍五入.
- 对基本数据类型进行执行算术运算或按位运算,只要类型比int小,在运算之前,会自动转换成int,最终结果就是int型,如果要把结果赋值给较小的类型,就必须使用类型转换.
14.sizeof
- sizeof()操作符:返回数据分配的字节数.
- Java不需要sizeof,因为所有类型在所有机器中的大小是相同的.
END
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。