对于面试来讲,面试官对集合的发问一般也就是前三篇文章所提到的那些!
面试官常问的几个面试题大概有下面这些(【】里是大概要回答的点)
- 常用的集合有哪些?【List、Set、Map】
- List中常用的有哪些?【
ArrayList
、LinkedList
】 - Map中常用的有哪些?【
HashMap
、LinkedHashMap、TreeMap】 - List和Set有什么区别?【List元素有序有重复,Set元素无序无重复】
- 某某某是否是线程安全?【需要说出线程不安全的点】
- 那有没有线程安全的?【需要对每个集合类线程安全的实现类有所了解】
HashMap 是重中之重,因为它是最复杂的,也是最难搞懂的!
集合常问的大概就这么几个吧,其实要是你会的比较多的话,上面这几个问题你都可以和面试官聊好久,一般要是面试官觉得你对集合的掌握没问题的话都会直接打断聊其他的知识点,所以还是要看个人对集合的掌握以及发挥程度吧!
最后再说一点无关技术的话吧:
一定要有自己的知识体系,对每个技术点的知识大纲,比如前几篇文章中的标题就是大纲,这样你在复习的时候不至于不知道该从何入手,有了知识大纲,渐渐地你会感觉复习起来越轻松了,点->线->面的积累。再比如复习MySQL时,主要大纲有下面这些:
- 表创建原则
数据库范式【第一/第二/第三/反模式】 - 索引
概念【一种数据结构】
索引类型【普通/唯一/主键/组合】
索引方法【hash/B-Tree/B+Tree】
创建原则【where后面的列】
使用原则【最左前缀原则/什么情况索引会失效】
优缺点
索引优化【explain语句】 - 事务
概念【一组数据库操作】
作用【数据一致性和完整性】
ACID特性【原子性/一致性/隔离性/持久性】
事务并发问题【脏读/不可重复读/幻读】
事务隔离级别【读未提交/读已提交/可重复度/串行化】 - 锁
行锁与表锁
共享锁与排他锁
悲观锁与乐观锁
死锁
总之要形成自己的知识体系!就这些吧,加油吧!