Thinking in Java笔记(3)——操作符

赋值

  • 基本数值:复制内容
  • 对象:复制引用
  • Random
    • Random rand = new Random(种子);
    • nextInt(上限~0)
    • nextFloat()
    • nextLong();
    • nextDouble()

算数操作符

  • 自动递增和递减
    • 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值进行操作,则会导致结果溢出
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值