字节跳动提前批 客户端一二三面 面经,已意向
普通本科生,无实习,有竞赛和项目
这里要感谢 和尚大哥 提供的平台(公众ID:秃头和尚)!!
一个月前我也是没有任何面试经验的面试小白,跟着和尚,上个月参加了和尚大哥组织的三场模拟面试,和群里小伙伴一起讨论面经、互相指导改简历。
和尚的牛客地址:https://www.nowcoder.com/profile/6489824
时间线
一面:7.20
二面:7.22
三面:7.27
等通知(期间没有收到任何通知)
OC,意向书:8.06(三面后第十天)
面试内容:操作系统、计算机网络、数据库(项目mysql)、leetcode算法题、项目
我是Java后端方向转客户端岗,基础题的面试问题都差不多,主要看回答的深度,以及知识体系掌握程度
一面(7.20)
1.先做一道算法题,LeetCode863:二叉树中所有距离为K的结点
两种思路:
a 把二叉树,转换成图,然后从给定结点出发bfs或则dfs到每一个距离为k的点
b 找到根到给定的结点这条链上所有的结点,把距离k分成两段去做,从链上每个点出发到给定结点的距离+ (k-从链上的点到另一个端点的距离)
操作系统:
2.怎么理解“中断”
3.运行时内存结构
4.操作系统中内存管理用到的数据结构有哪些
5.逻辑地址到物理地址的转换
计算机网络:
6.浏览器从输入url后的一系列过程
数据库:
7.mysql相关:如何建立索引使得两条查询语句都走索引(考察联合索引、最左前缀匹配)
反问:部门客户端用到的技术
二面(7.22)
计算机网络:
1.浏览器输入url后的一系列(详细)过程
2.HTTP是怎么找到TCP的(由第一题引出来,提前约定端口号,默认80)
操作系统:
3.进程调度方面,如果想让进程先来先服务怎么办(多级反馈队列,第一级设置为FCFS)
4.一个应用能用电脑多大的内存(考察方向:虚拟内存、进程寻址空间与位数)
5.进程间通信的方法
6.进程间通信中的共享内存通信,怎么保证安全(由上一题引出,考察深度)
7.进程间通信中的管道通信,能同时支持几个进程的通信(由上上一题引出)
8.看过JUC包下的源码,那这些工具类在操作系统和处理器上底层是怎么实现的比如锁的底层
项目:
9.redis限流如何做的
10.有没有进行压测,jmeter
11.编译器虚拟机部分:栈机和寄存器机的区别
数据库:
12.Mysql索引:B+树和其它索引相比较的优点
反问:部门客户端用到的技术
三面(7.27)
项目:
1.分别介绍两个项目(Java后端redis方面、编译器)
2.redis接口防刷限流如何做
3.redis雪崩穿透击穿及解决方案
4.redis优化后的QPS,Jmeter压测
5.讲一讲编译器项目
算法:
6.一道算法题:LeetCode238:除自身以外数组的乘积
思路:前缀、后缀乘积
操作系统:
7.说一说进程调度的算法
(先来先服务、短进程优先、高响应比优先、时间片轮转、优先级调度、多级反馈队列+优缺点)
8.线程池核心线程数设置成多少比较好?(与处理器核数有关)
9.平时如何学习的(先应用、再原理和源码;看书、视频、专栏、源码)
10.最近看了什么专栏(找和尚买的极客时间课程)
介绍部门和用到的技术
OC+意向书(8.06-19:30左右)
告知面试全通过了,问有没有时间提前去实习
之后加HR微信,发身份证号,然后一分钟后发了意向书
最后推荐一个小众的面经开源(自己为面试准备的思维导图。。)
CS-LogN计算机面试知识思维导图,
面试导图地址:https://github.com/FISHers6/CS-LogN
或则在Github搜索:CS-LogN
目前包含了以下内容:
(操作系统面试精华篇、计算机网络面试精华篇、数据库面试篇、Java集合类面试篇、Java多线程与并发基础篇、Java并发进阶和JUC源码面试篇、JVM篇、分布式面试基础、以及按照考研408知识点整理的操作系统和计网详细版导图)
另外有200道,按专题分类的高频LeetCode题解近期也会更新上去。
放两张图,比如操作系统面试常考:进程管理和内存管理
Java-JVM-GC垃圾回收部分知识点导图
与大多数文字版面试资料有点不同,个人觉得,用思维导图来复习面试的知识点,效率还是比较高的(复杂度Log(N)级。。),我一般是在面试前,花上一两个小时再看一遍就可以把面试常考点全部巩固一遍了。
另外导图提供了Xmind版,大家可以自行修改扩展各个知识点,有兴趣可以点点star~~
有问题可以私信我交流