字节跳动 data-edu 教育业务日常实习后端面经
无科研经历,无实习经历,只有课程作业。Java 语言。
CodeTop 已提交算法题。
有些问题回忆得不是很清晰。Java 问得很不深入,可能和部门的技术栈关系很大。
一面 2.19 45min
自我介绍
final class String,final 关键字的用法:个人讲了语法,前端编译器做的工作
Map 如何做到线程安全:Collections 的装饰器,ConcurrentHashMap,加锁
ConcurrentHashMap 原理:1.7 和 1.8
TCP 和 UDP:为什么要三次握手,TCP 和 UDP 的差异、适合情景,TCP 怎么做到可靠传输,拆包粘包
设计一个 TCP 上的应用层协议,怎么拆包:答的首部长度字段,不太确定
线程和进程的区别
僵尸进程,信号:父子进程信号。。不太了解操作系统
JVM 的垃圾回收算法,两种算法的优势;新生代和老年代的交替。
算法题:LeetCode91
反问
二面 2.20 35min
自我介绍
做过什么项目,介绍项目中遇到的 bug 和 困难
实习时间,可以多久
栈和堆的区别:答了可见性,没到点子上
进程之间通信的方式:pipe,socket,signal,共享内存
接触过什么 HTTP 状态码
怎么做垃圾回收:可达性分析
HTTPS:不会,只知道做了加密
‘了解微服务吗:不太了解,看过 DDD 的材料
了解RPC吗:不了解
使用的什么数据库:h2...数据库😅
个人对未来的规划
个人的优势在哪里:做题多...代码能力强?😅
算法题:简单的滑动窗口问题。对于一个 digit 的字符串,是否存在一个 len = 10 的窗口,包含 '0' - '9' 的所有字符。
用了一个数组,每次滑动对数组进行检查
有无更好的方式?
使用 map,只处理新增字符?
(面试时没想好。大概可以维护一个 map,只记录不符合要求的字符的 key-value,这样每次滑动,只需要对两个字符的 value 进行修改或 remove,当 map 的 size 为 0 时,表明这样的窗口存在。)
反问
hr面 3.1 45min
对之前面试的感想:讲了反思,不足之处
了解学校,专业情况,是否读研
询问是否了解部门业务
对字节跳动的看法
反问