摘要:
为什么在重写 equals 方法的时候需要重写 hashCode 方法 因为有强制的规范指定需要同时重写 hashcode 与 equals 方法,许多容器类,如 HashMap、HashSet 都依赖于 hashcode 与 equals 的规定。 在Java中,equals() 和 hashCo 阅读全文
摘要:
从 Java 7 开始,我们可以在 switch case 中使用字符串,但这仅仅是一个语法糖。内部实现在 switch 中使用字符串的 hash code。 从 Java 7 开始,Java 语言支持在 switch 语句中直接使用 String 类型的变量。之前的版本只允许在 switch 语句 阅读全文
摘要:
false,因为有些浮点数不能完全精确的表示出来。 由于浮点数在计算机中的表示通常是近似值,3 * 0.1 实际上可能不会精确等于 0.3。这是因为二进制浮点数最为常用的表示格式(IEEE 754)通常无法精确表示一些十进制数。执行 3 * 0.1 == 0.3 在 Java 中很可能会返回 fal 阅读全文
摘要:
对于 a = a + b,如果 a 和 b 是 byte、short 或 char 类型的变量,在进行算术运算的时候会首先提升为 int 类型(这称为 类型提升),然后才执行加法运算。 如果想将结果赋值回 byte、short 或 char 类型的变量,必须进行显式的类型转换,否则编译器会报错,因为 阅读全文