基础问题小计
包含容易忘记或者混淆的概念性知识点。
StringBuffer 和 StringBuilder 类的区别是什么
StringBuilder
不是线程安全的,但是运行速度快,所以推荐使用StringBuilder
。
抽象类、接口
抽象类,说白了和普通类只有一个区别:不能实例化。
接口,只是定义抽象
方法,没有构造方法,支持多继承;成员变量只能是:public static final
类型的。接口是 隐式抽象
的。方法全部都是公有的。
一个类只能 继承
一个抽象类,但可以 实现
多个接口。
集合
ArrayList 数组
增加add
,删除remove
,修改set
,查询get
排序
- 升序:
arrayList.sort(Comparator.naturalOrder())
- 降序:
arrayList.sort(Comparator.reverseOrder())
LinkedList 链表
逐一添加 add
,添加头addFrist
,移除头removeFirst
,移除尾removeLast
,获取头getFirst
,获取尾getLast
- 实现了
Queue
接口,可作为队列使用 - 实现了
Deque
接口,可作为队列使用 - 实现了
List
接口,可进行列表的相关操作 - 实现了
Cloneable
接口,可实现克隆 - 实现了
java.io.Serializable
接口,即可支持序列化,能通过序列化去传输
HashSet
- 基于 HashMap
- 不允许重复元素的集合
- 允许 null
- 无序
- 非线程安全
添加add
,判断存在contains
,删除remove
,清空clear
HashMap
- 散列表,Key-Value 映射,可以不同类型,可以泛型指定。
- 无序
添加put
,获取get
,删除remove
迭代
- 只获取 key :
KeySet()
- 只获取 value :
values()