这次笔试答得感觉很糟糕(很多东西模棱两可),这也是第一次接触全问答题形式的笔试。
equals 与 hashCode 关系
equals 相同,hashCode 必须相同。
hashCode 相同,equals 可以不同。懒汉式单例(写成了恶汉式)
懒汉式:class Single{
private static Single s = null;
public Single() {
if (s == null)
s = new Single();
return s;
}
}
恶汉式:
public Single(){
private static Single s=new Single();
private Single(){
}
public static Simple getSimple(){
return s;
}
}
- List
list 删除 “delete” 元素,String 类型比较特殊,直接 list.remove(“delete”) 即可,答题时写成循环判断删除,虽然也能删除,但感觉不是很好。 - JVM 设置堆内存最大值。
对于 JVM 运行参数这块,没有过多研究,虽然设置过,但是记得不是非常清楚,答案刚好写反写成-XX:PermSize,正确答案是 -Xmx。 - HashMap 实现原理。
这道题如果要解释得详细的话估计答题纸那点空间是不够的,当时也就简单写了下 key、value 存储结构,key、value 允许为 null,可能有点答非所问。所以后面加上了内部实现结构是一个链表数组,这一点肯定是没有错的,错误的在后面,以前的确看过有关 hash 冲突的问题,所以将 HashMap 解决冲突的办法写成再哈希算法了,正确答案是 HashMap 采用的是链地址法,就是前面所说的链表数组,我勒个去,学艺不精啊。
算了,总结不下去了,再分析下去,此次的笔试题就全挂完了,现在看来,这也难怪面试时都没怎么问技术问题就 Game Over 了。So,继续努力吧,此次的全问答题笔试总的来说收获还是挺大的,问题虽然自己都有所了解过,并没有那种从来都没接触过的东西,关键还是自己没仔细分析过,记得不清不楚的。