面经:字节后端-杭州抖音 二面挂

一面:

计网:

  • 三次握手,为什么要第三次握手
  • TCP保证准确性的措施
  • 简要介绍滑动窗口
  • UDP和TCP的区别
  • 四次挥手过程,最后为什么要等2MSL
    (此处答岔了,2MSL是最后客户端发出第四次报文后等待的,答岔后记在了面评里,二面又问了一次)

操作系统:

  • 死锁的四个必要条件,如何解决
  • 简要介绍下常用的锁机制
    (没答上来,直接跳过问数据库)

数据库:

  • ACID特性
    (本想秀一下英文,C一致性和I隔离性单词说反了,面试官问了还没发现,也写到了面评里二面又问一次。千万别不懂嗯装)
  • 分别用什么方法实现的
  • SQL常见语句
    (说了SELECT WHERE GROUP BY就没再问了,误以为这块不重要,轻视和草率直接造成二面的惨象)

C++基础:

  • #include 后<>和""的区别
  • malloc和new的区别,为什么单片机用malloc
  • 指针和引用的区别
  • C++多态的实现(编译时多态:函数重载和模板,运行时多态:虚函数)

算法:

  1. 非递减序平方数组
    给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
    —简单题,双指针
  2. (智力题没写程序)飞机上有100个人,每人都有对应的座位。有一个人喝醉了随机坐,剩下的人尽可能坐到自己位置上,被霸占了就也随机坐,都坐到自己位置上的概率?
    —递归分析,喝醉的1/100做对,99/100随机;这99/100中,被霸占位置的第二个人也随机,1/99坐对,98/99随机…
    最后剩两个人,一人1/2的概率坐对,另一人也对;1/2的概率做错,另一人也错。
    故答案是1/2。
  3. 无重复字符最长子串
    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
    示例 1:
    输入: s = “abcabcbb”
    输出: 3
    解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
    –unordered_set调用,非常简单

二面:

计网:

  1. 介绍四次握手,为什么最后等待2MSL再close(针对一面答岔的)
  2. 详细介绍HTTPS加密(SSL/TSL协议和工作流程,大约花了5分钟)
  3. 滑动窗口

操作系统:

  1. 常用的锁机制,会用Linux表达么(回答的乐观锁和悲观锁,但他说不是这个问题,可能是读写锁的Linux表达,我说了不会Linux之后再问了一个,就直接跳到数据库了)
  2. 简要介绍进程间通信

数据库:

  1. ACID四大特性,详细介绍+举例(一面的面评,这下答上来了)
  2. ACID分别靠什么实现,详细介绍(redo和undo,mvcc都要详细介绍,这块之前只看了一点,答得相当不好)
  3. 既然你说了redo和undo,那为什么能保证持久性和原子性
  4. 你也说到了脏读幻读和不可重复读,详细介绍+举例(问的非常细,当时就有点紧张,不可重复读和幻读就答混了,之后被指引纠正了)
  5. MVCC是什么,如何实现(当时没看到这一部分,只能说不知道,这时候面试官差不多知道了数据库是短板,之后就问了一大堆数据库基础)
  6. 之前说了乐观锁和悲观锁,数据库里的具体应用呢(只说了概念不懂应用)
  7. 数据库四种隔离机制,分别解决了什么问题(问题匹配答漏了一个)
  8. 知道常用的SQL四种存储引擎么,分别有什么特点(只说了InnoDB和MyISAM,回滚的特性还说岔了,直接导致后面详细问这块)
  9. 为什么InnoDB多了行级锁就支持事务了,什么样的操作算一个事务
  10. InnoDB回滚用了redo log,你觉得他会把日志存在硬盘里还是内存里,为什么(内存,要结合bin log和事务机制,并应对异常重启解释)
  11. 感觉你对数据库不大熟,你知道一句SQL语句是如何执行的?
  12. 什么是索引,索引有什么优缺点
  13. 索引的结构,B+树介绍
  14. 知道外键么,为什么不推荐用外键
  15. 聚簇索引和非聚簇索引的介绍和优缺点
  16. 重新介绍一下三大日志吧
  17. 了解过redis么
  18. SQL语句运用,用SQL语句写出平均分在60分以上的同学的姓名,题比较难,有学生表教师表课程表成绩表,四次连接查询才能找到
  19. 这个关系数据库属于什么范式

算法:
最大正方形
在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。

示例 1:
在这里插入图片描述

输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]
输出:4

想了BFS方法,复杂度过高,m*n后还要沿1递归,只能通过剪枝减少复杂度,被否决。
之后想了dp的方法,写了状态转移方程,之后边界条件设计错了,漏了最左边和最右边的判断,一直出不来结果,被提醒了也因为整场被压很紧张没想出来。

总结

一面更偏重基础,看你会什么,二面偏重薄弱点,看你不会什么…
被发现数据库不扎实之后问了个底朝天,也确实是自己这块误以为只用背背面经就行,想继续在后端做下去一定要在数据库上花大功夫。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值