大四实习生”都四面成功拿到字节跳动 Offer 了,你还有什么理由去摸鱼
挑一个项目来介绍一下
讲到了项目中做的一个改进,跟缓存有关。
Redis 的表结构有了解吗?(dict 存各项数据,expires 存过期时间)
爬数据这个环节是怎么定期更新的?是定期自动执行还是需要你手动去操作?
一台服务器的话,会有负载压力吗?如果要承受更大的 QPS,你还有什么想法去优化吗?
数据结构你熟悉吗?(答 特别复杂的数据结构了解不深,但基本的数据结构还是比较熟悉的)面试官说那我就不细问了。
我们还是来做一道题:面完查了一下是 LeetCode 81。
不用写,说思路就可以。
之前没接触过,面试官引导了一下,想了一会儿,说了一下大致思路
问了一下细节,又想了一会儿,面试官说今天我们面试蛮久了,开始反问环节。
反问环节
问部门技术栈,面试官说我是别的部门来交叉面的,我到时候不一定是在他的部门,然后介绍技术栈是 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 容器初始化过程、Spring Envirnment 原理、Spring 监听器、Spring lOC 原理、Spring AOP 原理、Spring Boot Starter 原理、Spring 高级运用
Neety 与 RPC
评论