Java语法基础要点
字符串
重写equals方法进为什么要重写hashCode
在有些地方会使用到hashcode, 比如说HashMap中的元素,如果相同对象不能保证hashcode是一致的就会导致bug,比如说如果Key为引用对象时,虽然equals相等,但是可能插入的数据,用另一个equal相等的Key去get, 会get不value
由于我们在 HashMapKey 对象里没有定义 equals 方法,系统就不得不调用 Object 类的 equals 方法,同理由于 Object 的固有方法是根据两个对象的内存地址来判断,所以 k1 和 k2 一定不会相等
泛型
概念
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法
的创建中,分别称为泛型类、泛型接口、泛型方法
泛型擦除
Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过程就称为类型擦除