3/25一面
面试官人很好,先让我选学的好的一门课,我选的数据库
- MySQL为什么用b+树
- 为什么不用hash索引, 答:不能范围查找
追问:如果现在用ssd,随机查找很快,范围查找没有优势
答:ssd贵
追问:不考虑价格
答:不知道 - MySQL服务器发生宕机怎么办
- 聚集索引,非聚集索引
select * from t where a=1,b=2,c>=3,d=4
怎么建索引,为什么- 死锁产生条件
- java的多态和继承
能多重继承吗,为什么
默认修饰符是什么,public还是private,为什么 - 算法题:给你一个长度为N的链表。N很大,但你不知道N有多大。你的任务是从这N个元素中随机取出k个元素。你只能遍历这个链表一次。你的算法必须保证取出的元素恰好有k个,且它们是完全随机的(出现概率均等)。
答:不会,后来查了查是水库抽样算法 - 算法题:0/1矩阵,找出内部元素全是1的最大的正方形边长(leetcode 221)
3/30二面
- 快速排序思想,时间复杂度,最坏情况怎么优化
- 10万个数,取出其中最大的五个数,时间复杂度(top k问题)
- 讲一讲hashmap,什么时候出现循环链表
- 线程安全的java容器讲一个
- 乐观锁和悲观锁思想,MySQL怎么实现乐观锁(不会)
- 数据库底层数据结构(b+树)
- 线程池核心参数,工作流程
如果任务队列满了但最大线程数没满,是先处理任务队列里的还是先处理新来的任务
线程池的线程数怎么确定 - minorGC条件,什么时候进入老年代
有没有进入老年代的特殊情况
答:大对象直接进入,动态判定年龄 - 怎么实现线程安全的单例模式
答:双重校验锁实现的单例模式
追问:volatile在其中的作用 - AQS底层结构,线程间是怎么通信的
- ReentrantLock和synchronized区别
- CPU被占满怎么排查哪一行代码出问题
- 用过Spring吗
- 聊了聊项目,如何改进
3/31三面
- 聊了半个多小时的项目价值和意义(这次的面试官很看重业务价值,需要好好说明解决了什么问题,项目的价值)
- hashmap是线程安全的吗,如果要求线程安全用什么
- JVM内存结构, 内存溢出原因,用什么工具判断
- 怎么设计一个后端架构,需要哪些组件
- 怎么做文本聚类(因为自己研究生方向是文本挖掘)
- 怎么学的java
答:看书,还有博客
追问:印象深刻的地方
全部评论
(5) 回帖