时长 55 分钟,无手撕。
时间线:08.13投递、测评,08.16笔试,09.05一面。
❓面试问题:
- 面试官先做了个自我介绍。
- 我自我介绍。
- 在校成绩和竞赛情况。
- 项目来源。
- 常见数据结构有哪些?从大的方面讲,比如说数据结构包括哪些大的维度?然后这些大的维度下面有哪些细分的?(提示:比如说线性数据结构有哪些?)
- Java 里的集合你是怎么理解的?它是怎么划分的,怎么设计的?包括它每一个具体的集合,下面的具体的常用的一些实现类有哪些?
- List 的实现里面有 ArrayList 和 LinkedList,这两个哪个是线程安全的?
- 如果要把 LinkedList 变成线程安全的,怎么实现?
- Map 里面,如果我想在 Map 结构里面去实现排序,怎么做?
- 线程的状态有哪些知道吗?
- 哪些场景下一个运行状态的线程会变成阻塞状态?
- JUC 知道是什么吗?JUC 包里面的话,它提供了一些用于多线程情况下不同线程之间的并发和同步的一些实现类。典型的有哪些?(提示:比如说其中一种是信号量,还有三种是什么?)
- 线程池有用过吗?线程池里面比方说一个线程执行完了,就是接收到一个任务,然后执行完之后,这个线程处于什么状态?
- 项目中比方说有 A、B、C 三种实现方案,但是这个 A、B、C 三种实现方案的话都是基于一套算法流程的,或者说相同步骤的,只是说针对每块的步骤可能具体的实现不一样,那我可以考虑使用什么样的设计模式?
- 那策略模式是什么样子的?
- 项目中 Redis 使用的什么版本?
- Redis 常见数据类型有哪些?
- 布隆过滤器知道吗?布隆过滤器主要是用来解决什么样的一些场景?
- 布隆过滤器底层是怎么实现的?
- 你说的场景下布隆过滤器解决的就是大量数据怎么去快速地去判断它的一个真阴性和假阳性的问题。那么这种场景下还有没有其他更优的方案?(提示:布隆过滤器内部是经过了一些哈希函数去计算的嘛,比方说有 n 个哈希函数去计算,那么它的时间复杂度是什么样子呢?比方说有没有时间复杂度更低的方案,但是能实现同样的效果?)
- 实现一个文件上传的功能,怎么设计?
- 反问。
🙌面试感想:
面试官人不错,很有耐心,体验很好,不太清楚的地方会提示,最后反问的时候也给了挺多实用的建议。
全部评论
(2) 回帖