Shopee 2021春招后端二面新鲜回忆录
(⑉・̆-・̆⑉)
准备
4月28号收到了5月9号二面的通知,还挺开心的,我去牛客网/包括同学找了好几份面经,总结了一下各种面经的特点:
项目质询 + 少量的数据结构/操作系统/计算机网络 + 大量的数据存储(尤其是MySQL/Redis相关) + 极少的职场问题
Redis
我是完全没有接触过,所以也搜索了很多相关的资料,并且整理成 Redis面经汇总篇(应该是全网最通俗易懂最全面的知识点,毕竟我也很想拿到虾皮的offer所以也做足了准备工作)(4月30号我的家人来北京玩,我一直陪着旅游到5月4号,所以只能争取在交通和吃饭过程中用Safari查阅资料,并且粗略归档…5月5号给毕业论文降重又花费了一天的时间,相当于其实我只能抓住678三天消化…);- 关于职场问题,比如职业规划、工作冲突、个人优势,我也去知乎查了很多好的建议,并且全部模拟练过一遍(对标字节后端一面凉经中的血泪史,也算是不断地自我成长吧…);
- 但是令我十分崩溃的是我的面试官基本没问我Redis的内容……问我的主要是操作系统和计网的知识…
- 我为了把面试问题引导到数据的存储上,回答的时候就尽量往MySQL和Redis这些方面靠,但是前辈还是没怎么提问相关的内容…
- 我猜测是我的简历没有怎么涉及到后端技术和Redis的内容,所以前辈不想为难我…(也算是感谢前辈的一番好意了…)
- 但是这并不是最崩溃的…问答八股我自认为回答的还可以,最崩溃的是手写代码的时候面试官让我写一道SQL的代码(虽然不难,但是我没准备过SQL代码…),没怎么写出来,感觉凉透了…(反问环节我问面试官他对我的评价,他说整体来看基础可以,数据库比较欠缺,我听不出是不是直接凉到谷底……)
- 所以这大概也算是一篇用血泪教训换来的最具参考价值的面经吧….
- anyway还是虔诚地许愿HR面🙏 ,听说牛客的许愿很灵,我也去牛客许愿了🙏🙏🙏 (事到如今也只有心诚则灵了)
面试内容为 自我介绍 + 项目质询 + 问答环节 + SQL编程 * 1
自我介绍 & 项目介绍
主要揪着项目问,不算问的很细致,大概时长15分钟。
问答
# 按题号顺序
- 数组和链表的区别(内存、扩容),数组怎么扩容(因为我答了这个),为什么随机访问效率高(我也答了这个)
- 数据库范式有哪些,并举例说明(三大范式)
- 数据库的什么列适合创建普通索引(问的时候说索引一般会分为XX索引和XX索引,也就是普通索引,我没听清),group by / order by 为什么创建索引能提高查询速度
- 对于性别这种列适合创建索引吗(不适合,重复性强区分度小),索引创建越多越好吗(不是)
- 浏览器输入域名,请求到达服务器的整个过程(之前也被字节问过),如果是HTTPS发送请求会有什么不同
- 进程和线程上下文切换的区别(我不会,所以我回答了进程和线程的区别)
- 多线程并发会有什么问题(我回答的是会导致死锁,然后针对死锁的特点和死锁如何预防说了很长时间,其实没有完全答对该问题)
- 多线程并发对某个数据进行写入操作会有什么问题(其实最好的回答是把数据库的死锁和Redis的分布式锁都回答上)
SQL编程
""" 有2个表:订单表(order_tab)、订单详情表(子订单,order_detail_tab) 其中订单表的主键是订单详情表的外键,订单表和详情表是1:n的关系, 现在需求是查询订单详情数量大于10笔的主订单ID及其对应的子订单数量,并根据数量降序排序。 Order_tab: order_id、total_amount(总金额) order_detail_tab: detail_order_id、order_id、order_amount(子订单金额) """
题目不难,应该需要两句,但是我大概有一年半没有写过SQL语句了…所以当时整个人都宕机了,只能写出一句,然后告诉面试官我的思路以及我的SQL语句为什么要那样写…
复查了一遍牛客的面经,没人手写SQL(甚至二面很多人都没写代码环节…),感觉自己凉透了,应该是止步二面收感谢信了… 😢😢