随笔分类 - 面试
摘要:比较 HashMap HashTable 存储结构 数组 + 链表/红黑树 数组 + 链表 扩容方式 oldCap * 2 oldCap * 2 + 1 K,V能否为null key, value 均可以为 null key, value 均不可以为 null 线程是否安全 线程不安全 线程安全 H
阅读全文
摘要:一、对于Map集合存储结构的理解首先介绍以HashMap为典型代表的Map集合的存储结构 ① Map中的key:无序的、不可重复的,底层使用Set集合存储key;key所在的类要重写equals()和hashCode() 。 ② Map中的value:无序的、可重复的,底层使用Collection集
阅读全文
摘要:List,Set都是继承自Collection接口; List特点:元素有放入顺序,元素可重复;Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的);Map特点:元素按键值对存储,无放入顺序 (应该知道什
阅读全文
摘要:一.相同点 三个类都实现了List接口,存储数据的形式特点相同,都是存储可重复的有序的数据。 二.不同点 1.ArrayList类主要是实现类,虽然效率高,但是线程不安全。底层用的是Object[]数组存储。从查找的时间复杂度来说它属于O(I)。删除元素的时间复杂度O(n)。 2.LinkedLis
阅读全文
摘要:throw表示抛出一个异常类的对象,生成异常对象的过程。声明在方法体内。 throws属于异常处理的一种方式,声明在方法声明处。
阅读全文
摘要:JDK = JRE + Java的开发工具(javac.exe, java.exe, javadoc.exe) JRE = JVM + Java核心类库
阅读全文
摘要:先放结论: 通过重写的hashcode 直接定位到key 的位置 , 根据重写的equals 保证唯一性。 hashCode()方法主要用来定位元素在数组中的下标位置; equals()方法主要是在发生hash冲突时,遍历链表,挨个比较元素时,判断两个元素是否相等。 重写hashCode(): 保证
阅读全文