【一面】
一开始简单的聊了聊天,然后说接下来会问基础题。感觉面试官没有怎么用过 Java,我在回答问题的时候提到了 gc、juc,想让面试官往这方面问,但是这些都没有问。面试官非常 nice,很耐心的听完我的回答,并且会用提问的方式来引导思考。最后的算法题也会让我把代码发给他帮我看思路。
准备的方向主要是 Java 基础、多线程、juc、网络、数据库、redis。但是基本只问了网络和分布式,以及很多基础题。面试的过程中连续多个问题不会几近崩溃。终究还是太菜了。
1、tcp 握手、挥手、time_wait;
2、讲下对于字节序的了解,网络字节序和主机字节序有什么区别;(不知道)
3、大小端?有什么应用?(应用不知道)
4、epoll 的工作模式?每个工作模式的特定要点?(多路复用,扯到了redis,但是面试官没有接着问)
5、进程的调度?(不会)
6、TCP 滑动窗口机制?这个机制有什么作用?
7、一个包从网卡到应用层的大致过程(本机)?
8、数据链路层的作用?
(口述算法)
9、10亿个整数,取前100个,时间复杂度?
10、如何判断流程图有环?(扯到了gc的三色标记法,想引导面试官问我gc,但是没有问)
(继续怼基础)
11、x86、x64 函数调用原理?有哪些重要的寄存器?(不知道,学校学的 ARM)
12、协程?
13、你的技术栈是哪些?(感觉是面试官发现他问的问题我都答不上来,开始想给我找点能回到上来的问题)
14、C/C++,go 用过吗?python?
15、实习时间怎么安排?能实习多久?
16、怎么实现分布式强一致性?实现的原理和方法有哪些?(抢答了分布式锁)
17、进程间通信方式?(信号量扯到了 juc,但是面试官也没有接着问)
18、Hash、多阶哈希、一致性哈希的原理?
19、什么时候字节对齐?为什么要做字节对齐?(不会)
20、了解过 C 的 struct 吗?
21、有了解过负载均衡吗?
手写算法:
字符串除法(给定一个字符串和一个小于10的整除,求字符串除以整数之后的结果,最多保留两位小数)
【二面】
匆匆忙忙准备了一下,面试官依旧是怼基础,依旧是心态崩溃。
1、面试官介绍部门
2、职业规划、自我介绍
3、实习时间
4、是否读博,还有若干个人问题
5、做过后台项目吗?(说了 Java 的项目,一个 ssm,一个 spring cloud,面试官没有接着问)
6、做过 Linux 环境下,写网络 server 吗?(没有)
7、了解过 epoll 的原理吗?多路复用 IO 概念?(我没想到一面的问题二面还会问,没有准备,强行从 redis 扯)
8、LInux 环境下多路复用系统调用?具体实现?(不会)
9、网络丢包的过程?
10、TCP 的包从网卡收到以后,在内核的流转过程和用户态进程收到的最终流转过程(不会)
11、不是问你 OSI,从底层和我说下(不会,瞎扯)
12、我在键盘上敲一个字符,到屏幕上显示的过程中,发生了什么?(瞎扯)
13、驱动程序和应用程序之间的区别?
14、如何驱动硬件?
15、体系结构你学过吗?硬中断?软中断?内核?buffer?这都是很基本的啊,你怎么都不会(转专业选手留下了泪水)
16、不是这样,说的不是一个东西(太菜了)
17、进程和线程在 Linux 下相同的地方?我指的是 Linux 环境下
18、 场景:后台有一个进程、cpu、内存占用都很低,但是压测 qp 一直上不去,你觉得可以怎么排查?(不会,瞎扯)
19、我说的是如何去排查?(没有这方面的经验)
20、使用过系统工具分析CPU高占用的进程吗?(没有)
21、 场景 :游戏里面,对于某个群体的玩家进行查询,你会怎么做?
22、你没说到重点,继续问(继续从 Java 瞎扯)
23、我是说让你自己去实现,你会怎么做?
24、换一个问题,假设有一个很大的文本,设计一个算法让它占用的磁盘空间尽量低,你会怎么做?(瞎扯,被问到崩溃,int、char 几个字节都忘了)
25、压缩算法了解吗?(不会)
26、数据库里面的事务?(终于有八股题了)
27、给了一个场景,非原子操作问怎么回滚?幂等性?
28、https 工作原理?为什么有非对称加密和对称加密?为什么效率差异大?
29、非对称加密算法了解吗?(不知道)
30、对称加密算法了解吗?(不了解,我只会传统八股。。)
31、https 对于重放攻击能保护吗?你了解重放攻击吗?
32、 场景 :你要设计一个游戏账号系统,对于账号 uid 怎么设计?
33、现在有欧洲、美洲、亚洲,这么多的集群,你怎么保证uid唯一性?
34、分布式锁?
时间不够了,没写算法题
反问:
1、面试评价(有自己的思考,但是体系结构、操作系统基础知识太差)
2、实习生做什么
【三面】
1、你本科学的什么?(传统工科专业介绍)
2、本科学习成绩怎么样?
3、研究生情况?为什么转行?
4、为什么学了C,没有学习C++?(因为转专业没时间学)
5、C 里面的问题?
6、你自己最大的优点和缺点是什么?
7、你希望在哪里工作?
8、如果薪酬低很多,你选择哪一家?
9、能实习多久?
10、gap 的一年在干什么?
反问
简单问了两个问题
【四面】
可能感觉前几轮面试我是真的对 Linux 一无所知,这一轮面试终于问我准备过的内容了。本菜鸡留下了感动的泪水。
1、自我介绍
2、技术栈是什么
3、智力题:10个可乐,三个可乐瓶能换一个可乐,那么最多能喝几瓶?
4、智力题:若干只香,燃烧速度不均匀,每支1小时烧完,怎么确定15分钟?
5、介绍下平衡二叉树?怎么构建平衡二叉树?
6、口述算法:二叉树任意两个节点之间最短路径?
7、口述算法:找出链表中的环?
8、二叉树的遍历方式?
9、TCP 可靠性体现在哪里?
10、Linux 系统下怎么看进程是否正常?(不会)
11、讲一下 ssh 命令(不会)
12、MySQL 事务隔离级别?
13、怎么检查 SQL 语句是否命中索引?
14、解释 IO 多路复用(一二面都问了,认真研究了下,三面终于答上来了)
15、解释一下一致性哈希?
16、jvm 的 gc 算法?
17、AOP 是什么?
18、DI 是什么?
19、网络安全了解吗?(没有)
20、概括一下最有亮点的项目?技术方面(后面问了半小时项目)
21、定时任务失败怎么处理?
22、数据量如果上千万,这个项目需要做哪些改进?
23、查询怎么分段?
24、全表查询?能怎么优化?
25、用 limit 分段吗?(面试官笑了)
26、任务失败之后,怎么重试?
27、文件太多,本地放不下怎么办?
28、如果多个进程要修改数据,怎么办?
29、在本地加锁吗?
反问:
1、对面试表现的评价(有规定不能说)
2、对于实习生工作的期待是什么?(最好能经过培养留下来)
3、部门做什么的?(我以为之前的面试挂了,没想到是第三轮复试)
【五面】
和预想的一样,五面的面试官也是我三面的面试官。主要从基础方面问了我相关问题,面试官很温和,不会打断回答(尽管我说的很啰嗦),并在最后感谢我所付出的时间。面试体验非常的 nice,希望能有好结果:
1、自我介绍
2、编译原理、操作系统学过吗?
3、说一下你对数据结构的理解?
4、说一下DFS、BFS 优缺点,应用场景
5、口述算法:图里面有两个点,从A走到B的算法和时间复杂度?
6、口述算法:现有二叉树的前序和中序遍历,能否得到后序遍历?
7、个人相关的问题
反问:
1、面试的表现和建议
关注公众号【面经熊】回复1可以获取精心整理的一千多篇互联网大厂面试经验!
更多互联网大厂技术岗面试经验可以戳链接https://mp.weixin.qq.com/s/cHWtErbwnrmtB3Gg3Isv2Q