大四实习生四面都成功拿到字节Offer,

博主大四实习,投的是字节Data的后端开发实习生,base杭州。

时间线:

4.12投递4.13安排简历筛选4.14安排面试4.:00一面4.:00二面4.:00三面4.:00HR面4.:30Offer一面

先做了自我介绍问论文情况(简历写了)做的是什么主要负责了哪些工作数据集是哪里来的带来的提升是以什么为基线去比较来做个题吧:有向图判断是否有环写了个DFS,写完示意面试官还剩建图的部分,面试官说建图可以不写提问代码细节我的代码是用邻接矩阵存的图,提问还可以用什么结构存?(邻接表)再来做个题吧,面试官挑了一会儿以后说感觉这个题你应该也能写出来,就不做了。多线程相关:有遇到过多线程的情况吧,假设A线程和B线程都想访问一个资源,如何保证线程安全?(答:加锁)有些线程只想读资源不想写资源,如果简单粗暴地加互斥锁的话性能不太好,有什么办法优化一下?(答:只对写操作加锁,读操作不受限制)多个线程,部分是写,部分是读(举例:A线程写、B线程读、C线程写),他们的执行顺序应该是怎么样的?(这一块一直没有抓住面试官想问什么,感觉答的不好)挑一个项目来介绍一下讲到了项目中做的一个改进,跟缓存有关。

Redis的表结构有了解吗?(dict存各项数据,expires存过期时间)爬数据这个环节是怎么定期更新的?是定期自动执行还是需要你手动去操作?一台服务器的话,会有负载压力吗?如果要承受更大的QPS,你还有什么想法去优化吗?数据结构你熟悉吗?(答特别复杂的数据结构了解不深,但基本的数据结构还是比较熟悉的)面试官说那我就不细问了。我们还是来做一道题:面完查了一下是LeetCode81。不用写,说思路就可以。之前没接触过,面试官引导了一下,想了一会儿,说了一下大致思路问了一下细节,又想了一会儿,面试官说今天我们面试蛮久了,开始反问环节。反问环节问部门技术栈,面试官说我是别的部门来交叉面的,我到时候不一定是在他的部门,然后介绍技术栈是C++/Go,少量Python写一些脚本。问面试官他这边知不知道大概什么时候会有结果,面试官说他这边写面评,后续需要HR安排。面试官介绍了一下他这边部门的情况。面试官看起来挺年轻的,很友善很有耐心,面试体验贼好。总体感觉问的不太八股,还是比较靠理解。

二面(1h)

自我介绍介绍项目(实验室应用平台)有几个实验室登录的方案是怎么做的签退的功能是怎么实现的如果有两个用户想要同时预定最后一个座位,如何保证不出错?Redis(项目中用到了)有设置超时时间吗?Redis的超时是怎么实现的?(答了下表结构)Redis超时的时候它是怎么操作的,是扫整张表吗?(答惰性删除和定期删除)具体的策略有哪些,比如你有了解过LRU吗?(答了8种淘汰策略)你知道LRU怎么实现吗?(答双向链表,双向链表+HashMap)提到了HashMap哈希冲突怎么解决红黑树的查找效率是多少哈希查找效率是多少介绍另一个项目爬虫是怎么做的数据存在哪里如果用户读文件的时候,程序刚好在往里面写数据,怎么保证正确性?有用过Go吗?(了解过一些,但没用过)接触过RPC吗?(了解过,但没实际写过)知道ProtoBuf吗?(简单说了一下)我们来写个题吧树状DP说了一下大概思路,但是状态转移方程写不出来面试官很耐心的引导了一下,但最后还是没写出来,慌的一批反问环节,问了下部门技术栈问我是否只能接受base杭州感觉二面面试官抓问题很精准,面完真的觉得自己凉了,结束半个小时以后HR电话通知三面。

三面(1h)

什么时候开始接触编程的你的专业不是CS,对计算机基础了解程度如何实习时间怎么样来写个题吧(实现一个HashTable,要求可以运行)如果让你写一个HashTable,你觉得需要有哪几个API面试官提示我先把API写了(先把API定下来,稍后写具体实现),然而我没get到面试官的意思,以为是要我先写核心部分代码。慌的一匹。之前没在牛客上跑过自己定义的类,卡了一会儿问面试官能否本地IDE跑给他看,面试官说不行,考验一下解决问题的能力。最后还是摸索出来了。跑了几个基本的测试样例。面试官要求和Java自带的HashMap对比一下。面试官要求随机生成一些TestCase来测试正确性,这块写的不是很好,跟面试官说了一下,面试官说你知道问题在哪儿就可以。反问环节,问面试官从今天的表现来看,还有哪一块需要提升。面完又感觉自己凉了,结束一个半小时以后HR电话通知HR面。HR面(10min)

什么时候可以来实习,可以实习到什么时候有没有考研打算有没有在看其他公司的实习机会之前三轮面试的体验如何面试官有没有介绍过部门在做的工作?看你之前有一些研究的经历,是对这些比较感兴趣吗?反问环节,问了下后续流程。面试题文档分享

下面先给大家上一个总的目录大纲,基础的东西就不进行过多的赘述,我们将会从JVM说起,同时由于每篇的内容过多,我们也只说重点,太过基础的内容谁都会,我就不多敲字浪费大家的时间了!

JVM

多线程与高并发

Spring源码

Spring容器初始化过程、SpringEnvirnment原理、Spring监听器、SpringlOC原理、SpringAOP原理、SpringBootStarter原理、Spring高级运用

Neety与RPC

微服务

服务注册发现、API网关、配置中心、事件调度(kafka)、服务跟踪(starter-sleuth)、服务熔断(Hystrix)、API管理等等

网络

OSI和TCP/IP对比、应用层协议讲解、传输控制层及SOCKET、网络层及链路层原理、NAT及路由规划、TCP/IP原理、TCP三次握手/四次挥手、HTTP原理、CDN原理等等

负载均衡

RabbitMQ

KAFKA

KAFKA框架原理、KAFKA特性及实现、KAFKA文件存储机制、KAFKA分区及可靠性、KAFKABROKER特性、KAFKA高效性相关设计、KAFKACONSUMER特性、KAFKAPERDUCER特性、KAFKAOFFSET维护方案、KAFKASTREAMING

MySQL

基本语法、索引的实现机制、索引的数据结构、索引的分类、索引与存储引擎、索引的设计、索引的优化、ACID、事务的实现原理、UNDOLOG、REDOLOG、BINLOG、MVCC和二阶段提交、共享锁、独占锁、排它锁、自增锁、间隙锁、临键锁、SPI、DRIVERMANAGER、CONNECTION、STATEMENT和PREPARESTATEMENT、RESULTSET、反射

Redis

REDIS部署、REDIS的VALUE类型、REDIS的发布订阅、REDIS的MODULE与布隆过滤器模块、REDIS的LUA脚本、Redis底层原理、主从集群锁、哨兵集群锁、红锁

由于文章篇幅有限,PDF的内容又很多,全部手敲下来很累……所以需要阅读阅读学习的,大家拿到手之后自己学习吧,楼主真的打字打累了。同时,想要获取私信小助理来获取




转载请注明:http://www.aierlanlan.com/rzdk/5107.html