文章列表
源代码查看,有三个常量,
static final int DEFAULT_INITIAL_CAPACITY = 16;
static final int MAXIMUM_CAPACITY = 1 << 30;
static final float DEFAULT_LOAD_FACTOR = 0.75f;
三个常量中可以看出,默认的容器大小是16,最大长度是2的30次方,load factor默认是0.75,扩充的临界值是16*0.75=12
当我们往HashMap中put元素的时候,先根据key的hashCode重新计算hash值,根据hash值得到这个元素在数组中的位置(即 ...
1.基本变量,没有hashcode和equals方法,基本变量的比较方式就只有==;
2.如果是变量,由于在java中所有变量定义都是一个指向实际存储的地址值,在这里==是比较地址,而不是实际内存中的内容,如果要比较实际内存中的内容,那就要用equals方法,但是如果是自己定义的一个类,比较自定义类用equals和==是一样的,都是比较地址,因为自定义的类是继承于object,而object中的equals就是用==来实现的,源码为证:
Object的equals方法:
public boolean equals(Object obj) {
return (this == obj);
}
...