字节跳动-技术中台 一面面经
字节跳动-技术中台 一面面经
面试官比较随和,对题目有疑问允许发问,个人除了手写的最后两题没答上来,其他题目都答的挺深入,总体偏基础。
问项目
TypeScript
- 说一下你为什么在项目中使用 TypeScript,和 JavaScript 有什么区别。
- 手写一个泛型的应用场景。
JWT
- 说一下你为什么用 JWT 。
- 说一下 JWT 的应用场景。
项目中有做防注入攻击吗
答了转义、表单校验、express 中间件校验、漏了个 cookie 的 httponly
计算机网络
传输层
讲一下 TCP 的特点。
TCP 特点
面向连接。
只支持单对单的数据传输。
提供可靠的传输,保证数据的不丢失、不重复、有序传输。
提供全双工通信。
面向字节流传输。
讲一下三次握手的过程。(略过了,经典问题)
讲一下四次挥手的过程。(同上,略过)
讲一下 TCP 的延迟主要是哪些。
- 拥塞避免的慢开始算法。
- 多次握手挥手。
应用层
- 讲一下 HTTP 2 和 HTTP 1.x的区别。
1. HTTP2使用的是二进制传送。
2. HTTP2支持多路复用。
3. HTTP2头部压缩。
4. HTTP2支持服务器推送。
5. HTTP2支持设置请求的优先级。
6. 还答到了这些区别是为了优化HTTP1.x哪些痛点。队头阻塞、TCP连接之间竞争带宽等等。 - 讲一下 HTTP 1.0 和 HTTP 1.1 的区别。
- 长连接
- 缓存头Cache-Control
- 讲一下缓存。(经典问题,略)
手写题
水平垂直居中,写了五种。
实现一个柯里化的函数(还吹牛逼说可以写出来,结果写半天,丢死人了)
function add1() {} console.log(add(1, 2, 3)); // 6 console.log(add(1)(2)(3)); // 6 console.log(add(1, 2)(3)); // 6 console.log(add(1)(2, 3)); // 6
leetcode 46.全排列(前面计网讲的太细了,最后时间所剩不多,写了一个递归的框架,和他说了思路)
提问
- 中台面向什么业务。
- 表现。基础很牢固,该记的东西都记得很深,但是要强化算法,手写。
- 部门技术栈。
- 什么时候出结果。