字节前端面经
项目
1. 聊了聊本科毕设项目,做产品的经历,如何获得产品需求。
2. 拓展到了其他项目,在项目中做了哪些贡献
反馈:项目经历深度不够,面试侧重点偏向计算机基础知识
PartA: 计算机网络
Q1: HTTP 和 HTTPS的区别
A1: HTTPS利用SSL/TLS进行加密,对网站服务器进行身份验证。
对比
- 具体说一说,HTTPS六次握手流程
HTTP | HTTPS |
80端口 | 443端口 |
安全性差,没有身份验证 | 网页以加密的方式传输 |
响应速度快 | 响应速度慢 |
资源消耗低 | 费用高,耗费资源 |
- 如何对数字证书进行验证
- SSL加密具体怎么实现的
这里我提了一下对称加密和非对称加密的区别
Q2: ISO七层和TCP/IP五层
- 说说ISO七层分别是哪七层
- 从底层网上说, 物理层, 数据链路层,网络层,传输层,会话层,表示层,应用层 (7层)
- TCP/IP是哪五层
- 物理层,数据链路层,网络层,传输层,应用层 (5层)
- 说一说这两层的关系
- ISO的会话层,表示层,应用层在TCP/IP里合并成一个应用层
- TCP/IP 分别在五层模型中的哪一层
- TCP在传输层,IP在网络层, HTTP/HTTPS在应用层
Part2: 数据结构
Q1: 链表和数组的区别
A1:
| 链表 | 数组 |
内存 | 可以存放在任意位置 | 内存空间要求高,必须是连续的空间 |
大小 | 不固定大小,延展性很灵活 | 固定大小,延展性差 |
效率 | 插入删除效率很快 | 插入和删除效率低,因为要保证连续空间 |
Q2:给了一个图 让写出来 二叉树 (前序中序后序遍历)
A2:答对了
Q3 :已知前序中序 画出二叉树 JS代码 (看见题目了没考,估计是没时间了)
Part3: 前端知识点
Q1: 说一说垂直居中方法
A1: flexbox: display: flex && align-items: center
Q2: 对flexbox的了解
A2: 说了一下夫组件定义flex,子组建定义span
Q3: 聊聊React生命周期
A2: 组件生命周期(Mounting && Updating && Unmounting)细问就不会了
算法:磨平数组
反馈:Leetcode还得多刷,计算机和前端基础知识还需加强。。。