pdd 服务端研发实习生 一面
被拷打麻了,发面经攒人品
- 自我介绍
- 你对拼多多了解多少?
- 拼多多的工作时间和工作强度你了解吗
- 能接受吗?
- java中的arraylist和linkedlist有什么区别
- 它们线程安全吗?
- 什么时候适合用linkedlist,什么时候适合用arraylist?
- 他们线程不安全,如果想用一个线程安全的列表,怎么办?
- 说一下CopyonWriteArraylist、vector、Collections.synchronizedList(arrayList)的原理分别是什么
- 讲一下synchronized的原理
- synchronized是公平锁吗?
- synchronized和ReentrantLock的区别
- 如果想用公平锁怎么办?
- ReentrantLock的底层实现原理是什么
- 线程池的核心参数
- 线程池的工作流程
- 工作的时候线程池的核心线程数量、堵塞队列大小,最大线程数量怎么设置
- 讲一下java内存模型
- 程序计数器是干什么的
- 创建一个对象是否一定在堆上?
- jvm启动的时候一般常配哪些参数
- 你了解哪些垃圾回收器
- G1的特点是什么?
- 用G1的话有哪些常见的配置
- 接口设计的话上下游对接要考虑哪些点?
- controller曾一般做什么工作
- 怎么实现分布式锁
- 业务出现异常了怎么保证锁的释放
- 如果用了分布式锁,但是业务服务器直接宕机了,怎么办?
- 如果分布式锁的超时时间设置的不够长,会发生什么?
- Redisson的看门狗机制讲一下
- mysql索引的数据结构
- b+树与b-树的区别
- 慢查询怎么优化
- 索引失效的场景有哪些
- update的时候死锁了,有哪些可能的场景?
- springboot自动装配的原理
手撕代码:lc23-合并k个升序列表
开始写了一个使用堆的解法,面试官说再写一个不用堆的。我又写了一个分治合并,他让我分析时间复杂度,我分析错了,应该是O(kn×logk),我说的O(n×logk)。
反问
- 业务是啥:海外供应链业务,进来要统一重新分配,不一定干啥
- 技术栈是啥:就是java那一套成熟的
- 工作时间:看团队,有的午饭晚饭各1.5h,能早点走。有的有的午饭晚饭各2h,走的晚。
- mysql什么时候update会死锁:where语句没有命中非唯一索引的时候可能处罚死锁(完全听不懂)