赋值
- 基本数值:复制内容
- 对象:复制引用
- Random
- Random rand = new Random(种子);
- nextInt(上限~0)
- nextFloat()
- nextLong();
- nextDouble()
算数操作符
- 自动递增和递减
- a++ & a–
- 先生成值再执行运算
- –a & ++a
- 先运算再生成值
- a++ & a–
- 短路现象
- 如果已经能判断逻辑表达式的结果,剩余表达式将不会被执行
- Equals默认比较引用
直接常量
- 十六进制:0x为前缀
- 指数计数法
- e代表底数10
- 指数通常被编译器作为双精度数(double)处理
按位操作符(^, &, |, ~)
- 与&: 如果两个输入位都是1,则生成一个输出位1,否则输出0
- 或|: 如果两个输入位有一个是1,则按位“或”操作符(|)生成一个输出为1,只有都是0的情况下,输出 0
- 异或^: 如果输入位某一位是1,但不都全是1,那么按异或操作输出1
- **非~(取反操作符):**只对一个操作数进行操作,取相反值
- 对布尔值,可以进行与、或、异或运算,但不能执行非,只是不会中途短路。
移位操作符(<<, >>)
- 只处理整数类型
- <<: 向左移动,低位补0
- **>>:**向右移动,如果符号为正,在高位插入0,符号为负,高位插入1
- **>>>:**无论正负,都在高位插入0
- 如果对char、byte或short进行移位,则会先被转化为int类型,结果也为int
- 若对long进行处理,得到结果也是Long,只会用到数值右端的低6位,避免超过long数值有效位数。
三元操作符if-else
Boolean-exp ? Value0: value1
截尾与舍入
- 将float或者double转化为整形时,总对该数字进行结尾
- 如果想四舍五入,需要调用java.lang.Math的round方法
总结
- char, byte, short若使用算术操作符,则会得到int结果
- 若对足够大的int值进行操作,则会导致结果溢出