一、Object所有的非final方法 类的方法前加final关键字,说明该方法不能被该类的子类重写。 二、equals方法和hashCode方法 1、什么时候需要覆盖equals方法 如果类具有自己特有的“逻辑相等”概念(不同于对象等同的概念),而且超类还没有覆盖equals以实现期望的行为,这时 ...
分类:
其他好文 时间:
2016-08-22 21:25:04
阅读次数:
129
自己学到这,就记录了下来,代码都是自己敲得,有不对的地方希望大神指点出来 为什么重写 equals 方法 必须重写 hashCode 如果你重写了equals,比如说是基于对象的内容实现的,而不重写 HashCode,那么很可能某两个对象明明是“相等”,而hashCode却不一样.那么就会返回 fa ...
分类:
其他好文 时间:
2016-08-22 17:52:22
阅读次数:
155
HashTable 注意1 方法是同步的注意2 方法不允许value==null注意3 方法调用了key的hashCode方法,如果key==null,会抛出空指针异常 HashMap 注意1 方法是非同步的注意2 方法允许key==null注意3 方法并没有对value进行任何调用,所以允许为nu ...
分类:
编程语言 时间:
2016-08-22 13:51:25
阅读次数:
134
在java中,equals和hashcode是有设计要求的,equals相等,则hashcode一定相等,反之则不然。 为何会有这样的要求? 在集合中,比如HashSet中,要求放入的对象不能重复,怎么判定呢? 首先会调用hashcode,如果hashcode相等,则继续调用equals,也相等,则 ...
分类:
编程语言 时间:
2016-08-21 18:18:00
阅读次数:
125
1、当向集合中添加对象时,首先计算要增加对象的hashCode码,根据该值得到一个位置用来存放当前的对象,当该位置没有一个对象存在的话,直接将该对象增加进去。如果该位置有一个对象存在的话,接着将准备增加到集合中的对象与该位置的对象进行equals方法比较,如果返回false,那么集合认为集合中不存在 ...
分类:
其他好文 时间:
2016-08-21 18:14:47
阅读次数:
95
Object:类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。每个类都直接或者间接的继承自Object类。Object类的方法:public int hashCode():返回该对象的哈希码值。注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地 ...
分类:
其他好文 时间:
2016-08-18 16:00:32
阅读次数:
157
HashSet\HashMap\HashTable 1 基于散列的集合 2 元素会根据hashcode散列,因此,集合中元素的顺序不一定与插入的顺序一致。 3 根据equals方法与hashCode方法判断元素是否相等。这两个方法是从Object基类中继承的, 查看Object源码,若比较两个引用变 ...
分类:
其他好文 时间:
2016-08-17 22:36:44
阅读次数:
147
在java编程或者面试中经常会遇到 == 、equals()的比较。自己看了看源码,结合实际的编程总结一下。 1. == java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码: 1 public class ComAddr{ 2 public static void main(S ...
分类:
编程语言 时间:
2016-08-14 16:14:03
阅读次数:
243
1.Java数据类型 在介绍Java的自动装箱和拆箱之前,我们先来了解一下Java的基本数据类型。 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference Type(引用类型)。基本类型的数值不是对象,不能调用对象的toString()、hashCode( ...
分类:
编程语言 时间:
2016-08-12 01:00:25
阅读次数:
180
Java中的Hash值 Java中的Hash值 1、Hash值有什么用? HashMap、HashTable、HashSet,所以涉及到使用Hash值进行优化存储的地方,都会用到HashCode。HashCode是 Key,这种计算为提高计算的性能。想想看,一般来说,数组算是比较快的集合类了吧,直接 ...
分类:
其他好文 时间:
2016-08-10 19:13:03
阅读次数:
105