您的位置:首页 > 职场人生

JAVA面试知识点

2017-04-07 10:32 274 查看
1 equals() 和 == 的区别

在没有重写equals()方法时,二者是一样的,都是判断两个变量的内存值是否相等。

JAVA 1.8源码

public boolean equals(Object obj) {
return (this == obj);
}


2 HashTable和HashMap

2.1 HashTable是线程安全的,HashMap不是

JAVA 1.8源码

public synchronized boolean contains(Object value)

2.2 key 和 value 是否可以为空:

HashTable不可以

HashMap可以,但null key只能有一个

2.3 父类不同

Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口

3 Map不是Collection的子类



4 HashMap采用了"static class Node<K,V> implements Map.Entry<K,V>"的数组 + 链表的结构,链表长度大于8的时候转化为红黑树

5 TreeSet Has-A NavigableMap

6 树的度相关的计算

树中结点数 = 总分叉数 +1。(这里的分叉数就是所有结点的度之和)

度为0的节点(叶子结点)是度为2的数量加1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: