老虎 (伪)三面 面经分享~~~
一面:
由于牛客网当时面试系统好像出问题了,连接不上,后来电面了(1h多点)
1. 如何扛高并发-> 缓存 -> 分库分表 (写请求多的情况)->面试官带入到了 自己的视角提问
2. 应用服务器扛不住 -> 横向扩展 -> 3. JVM垃圾回收 -> GCRoot -> 复制算法 -> 分代收集 -> 不让我说了
4. 模拟出现OOM现象 (1. 堆炸。2.常量池炸) 强引用过多/string.intern() jdk1.6
其它什么情况下常量池会爆炸 -> 类过多 ->
强引用 / 软引用 / 弱引用 / 虚引用 (后两者没答好)
5. 哪些情况会导致常量池爆炸? 类加载太多 反射? 反射是否会导致常量池OOM?
6. 关联提问 动态*** -> ???
7. 对象头大小
8. 线程安全i++ -> AtomicInteger -> CAS 、 Sync
9. CAS保证线程安全? CAS原理 -> 加上Volatile语义 LOCK前缀 -> MESI协议
10. 阻塞Sync保证线程安全?
偏向锁、 轻量级锁、 重量级锁 -> 重量级锁在内存中的体现 (对象头的标志是怎么设置的)
11. MQ: 消费者接口-> 幂等性/ 不遗漏消费(不丢消息)
12. MySQL中的B+树和 数据结构中的B+树有何不同? (不会, 猜叶子节点存数据)
13. B+树的叶子节点存的是什么? (不会, 猜 存的是记录行)
14. 表有 联合索引时 的 搜索过程 -> 最左匹配原则?
15. 两个字段的联合索引, 是一棵树 还是两个树? (猜一颗树。。。)
二面:
一面结束后立马 约了2面, 二面的时候能视频了 (1h多点)
二面面试官气场太强了, 我全程被压制, (压力面??? 还是我太菜了、、、、)
被压制了一小时后 让写一道 层次遍历二叉树的 题, 挽回了点尊严。
二面当时没记录 问了什么, 能想起来的是 根据项目问的 然后 往深挖了挖 , 然后 GG 斯密达。
三面:
二面结束后过了有十天, 估计 被捞了,
面试的时候 我和 三面面试官说我生病了, 状态很差, 很多东西 记得模模糊糊的, 然后 面试官好像考了我简单的东西, 谢谢~~
1. wait() 、 notify()
2. 锁相关的内容 : sync、 CAS
2. 锁相关的内容 : sync、 CAS
3. 数据库用到的锁 lock in share node 、 for update
(行锁、gap锁、next-key lock)
4. 问点项目
5. Java内存结构
6. SYNC放在实例方法和放在静态方法的区别
7. 并发包 ReentrantLock、 countdownlatch、 cyclebarrier、ForkJoin
8. 排序算法(比较类的排序算法) 时间复杂度
快排的时间复杂度O(NlogN)-> O(N方) 空间复杂度O(lonN) -> 空间复杂度O(lonN))
(行锁、gap锁、next-key lock)
4. 问点项目
5. Java内存结构
6. SYNC放在实例方法和放在静态方法的区别
7. 并发包 ReentrantLock、 countdownlatch、 cyclebarrier、ForkJoin
8. 排序算法(比较类的排序算法) 时间复杂度
快排的时间复杂度O(NlogN)-> O(N方) 空间复杂度O(lonN) -> 空间复杂度O(lonN))