Java运算符

  1. 基本类型的赋值都是直接的,而不像对象,赋予的只是其内存的引用。
  2. == 和 != 比较的是对象引用。因为 Integer 内部维 护着一个 IntegerCache 的缓存,默认缓存范围是 [-128, 127],所以 [-128, 127] 之间的值 用 == 和 != 比较也能能到正确的结果,但是不推荐用关系运算符比较。正确比较使用所有对象(不包括基本类 型)中都存在的 equals() 方法。
  3. equals() 的默认行为是比较对 象的引用而非具体内容。大多数 Java 库类通过覆写 equals() 方法比较对象的内容而不是其引用。创建自己的类时需要重写。
  4. 我们可以在数字字面量中包含下划线 _,以使结 果更清晰。如
    double d = 341_435_936.445_667;
  5. 编译器通常会将指数作为 double 类型来处理,所以定义float f4 = 1e-43f;时没有这个后缀字符 f,编译器就会报错,提示我们应该将 double 型转换成 float 型。

  6. 移位可以与等号 >= 或 >>>= 组合使用。左值被替换为其移位运算后的值。 但是,问题来了,当无符号右移与赋值相结合时,若将其与 byte 或 short 一起使用的 话,则结果错误。取而代之的是,它们被提升为 int 型并右移,但在重新赋值时被截断。 在这种情况下,结果为 -1。

  7. 与 if-else 不同的是,三元运算符是有返回结果的

  8. 若将数据类型进行 “向下转换”(Narrowing Conversion)的操作(将容量较大的数据类型转换成容量较 小的类型),可能会发生信息丢失的危险。此时,编译器会强迫我们进行转型,好比在 提醒我们:该操作可能危险,若你坚持让我这么做,那么对不起,请明确需要转换的类 型。对于 “向上转换”(Widening conversion),则不必进行显式的类型转换,因为较 大类型的数据肯定能容纳较小类型的数据,不会造成任何信息的丢失。

  9. 若你想对 结果进行四舍五入,可以使用 java.lang.Math 的 round() 方法

  10. 表达式中最大的数据类型是决定表达式结果的数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值