金九银十虽然不是绝对的,不可否认的是秋招依旧重要,在面试寒冬的时节里我们来看看几个大厂的面试真题,内涵思考,欢迎讨论。
1. 面试问题(Java 后端)
猿辅导
1.八皇后问题
2.求二叉树的最长距离(任意两个节点的路径 中最长的)
3.lru 算法的实现
4.设计一个数据结构 满足 put 和 getMedium(中位数)两个方法.
(时间复杂度分析, getMedium 在常数,n,log n 时间复杂度返回如何实现)
5.rabbitmq 脑裂问题,rabbitmq 延迟队列实现, rabbitmq高可用策略
(因为项目中用到了 rabbitmq 和他们技术选型出现了重叠,问了这个问题)
6. 死磕项目细节其中包括:
设计方案时有没有比较多种方案,为什么选这个方案?
你个人最有成就感,最有挑战性的 工作是哪一个?
Tip:
猿辅导问的算法题属于 leetcode easy, medium 级别的,基本不会太难。
旷视(Python)
1. Python 如何实现多线程/多进程编程
2. Python GIL 锁是什么?为什么会出现 GIL
3. python 协程有么有用过? 有哪些常见的协程库,介绍一下
4. python 装饰器如何实现,原理,常见使用场景?
5. python 一堆我没听见的库,有没有用过.(我没记下来)
6. 给你一个 Linux 路径,求其最简化的路径,例如(/a/b/.. -> /a, a/b/./. -> a/b等)
7. 给你一台 16 核, 32G 的机器, 无限空间大的分布式存储. 对1 个 16P 大小的文本文件进行排序.
文件每行一条记录, 空格分割例如
key1
key2
8. 介绍一下什么是外部排序
Tip:
1. 旷视的面试官会死磕python.,一点项目经历没问。
2. 除了 leetcode 也要多看看高并发,大数据相关的系统设计题。
去哪儿(Java)
1. 为什么使用 MQ, MQ 如何选型, 消息可靠性如何保证, 如何保证幂等
2. 用过 dubbo吗? 设计一个 rpc 框架.
3. 介绍一下 https
4. 数据库线程池, http 连接池有没有深入看过源码?介绍一下.(项目里用得到了 http client)
5. 给你十亿条数据,如何最快的添加到数据库中
6. 分布式锁的技术选型, 实现原理, 优劣势比较, zookeeper 的一致性协议原理
7. java 线程同步的几种方式, countdownlatch 和 栅栏的区别
8. synchronized和 aqs 如何实现可重入锁
陌陌
1.分布式锁的实现方案比较,为