在最底层,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


JadeQYuan
279 声望311 粉丝

知其然,知其所以然。。。