作者 | 莱乌
最近小莱的一些朋友去大厂面试,小莱与他们沟通了后总结了一份面试题,希望给想进大厂的同学提供一些帮助。
面试题包括:百度、滴滴、头条、微博、小米、顺丰等一线大厂。
数据结构
1、单链表反转(手写代码)
2、如何判断一个单链表是否有环?
3、给你一个实现栈的类,如何实现一个堆?
Redis
1、redis数据类型有哪些,及分别对应的底层数据结构
2、跳表的实现方式,时间复杂度
3、分布式锁的实现,详细参考《面试官:谈谈分布式锁的实现》
4、redis持久化方式,分别有哪些优缺点及工程上如何使用?
5、redis内存淘汰机制
6、redis主从复制原理
7、redis集群模式介绍(主从模式、哨兵模式、redis cluster模式)
8、跳表为什么不使用平衡树来实现?
Mysql
1、mysql锁(尤其是 GAP锁)
2、mysql索引有哪些?索引实现方式?(尤其注意联合索引)哪些情况下不会命中索引?
3、mysql事务、隔离级别、脏读、幻读、redo log/undo log/binlog、MVCC及实现原理
4、如何防止sql注入?
5、什么是两阶段提交?
6、加索引为什么会快?
Nginx
1、nginx惊群现象
2、为什么nginx能处理高并发?
3、网络模型:select、poll、epoll
4、IO异步多路复用中的异步是如何实现的?
5、负载均衡算法
6、熟悉nginx配置
Linux
1、统计某一时间段内访问前10的ip(注意是某一时间段内)
2、如何查看当前负载?
网络
1、session 和 cookie的区别?
2、如何处理跨域问题?分别从客户端、服务端回答
3、三次握手、四次回收
4、ISO七层模型
操作系统
1、守护进程是什么?如何实现?
2、进程间如何通信?
3、什么是僵尸进程、孤儿进程及如何处理?
4、什么是进程、线程,有什么区别?
设计类
1、常见的设计模式(手写程度)
单例模式
工厂模式
注册模式
语言类
1、php有哪些新特性
2、php魔术函数、魔术方法
3、php的垃圾回收机制
4、php数组底层实现方式
5、php底层运行原理
算法类
1、8种基本排序算法(尤其快排手写)
2、令牌桶算法
3、扑克牌顺子
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。 上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!”。LL决定去买体育彩票啦。现在,要求你使用这幅牌模拟上面的过程,然后告诉我们LL的运气如何,如果牌能组成顺子就输出true,否则就输出false。为了方便起见,你可以认为大小王是0。4、专辑问题
你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地收录于一张 CD 当中。每张 CD 的容量长度都是 L 秒,而且你至少得保证同一张 CD 内相邻两首歌中间至少要隔 1 秒。为了辟邪,你决定任意一张 CD 内的歌数不能被 13 这个数字整除,那么请问你出这张专辑至少需要多少张 CD ? 每组测试用例仅包含一组数据,每组数据第一行为三个正整数 n, s, L。保证 n ≤ 100 , s ≤ L ≤ 10000。综合类
1、为什么需要RPC、而不是简单的HTTP接口?
2、浏览器输入一个地址,访问过程
3、面对未知流量暴涨,如何处理?
4、系统访问过慢如何定位原因?
- END -