shopee后端一二面,许愿offer

shopee基本就没问语言相关问题,很大的一部分难点在网络和数据库,其他的方面都是很常规的题。 今天收到hr面通知了,真心祈祷能顺顺利利拿个offer

一面

项目相关

  • 介绍了一下项目
  • 怎么避免线程空转的
  • epoll和select和poll
  • 什么是线程安全,怎么做到线程安全

数据结构&&操作系统&&网络

这几个方面都不多,写在一起吧

  • 数组和链表不同
  • set和unordered_set的底层
  • 具体说说哈希表
  • 什么是堆,堆排序
  • 进程通信方式
  • 虚拟地址的好处
  • 什么是缺页异常
  • 三次握手四次挥手
  • time_wait状态在哪里
  • https过程

数据库

  • mysql的存储引擎
  • 索引的数据结构
  • 创建索引要考虑什么问题,例如索引越多越好吗(索引的维护需要时间空间不是越多越好,要考虑哪些列常被用来做条件,考虑联合索引的最左匹配,非聚簇索引可以用覆盖索引)
  • redis的五种基本数据结构
  • 说出redis的10个命令(我就憋了几个,不到10个,他估计也看透了我水平了)
  • redis的过期策略(有lru还有随机吧)
  • lru是属于主动过期还是被动过期(这啥啊,我不会……)

做题

小case,写的挺快的,面试官可能觉得我编程题还可以才给过的吧,毕竟我数据库那块那么烂……

  1. 合并链表
  2. 最长不重复子串

二面

项目

  • (一见面就夸我项目经验多)介绍了后台和安卓两个项目
  • reactor模式介绍
  • 使用多路复用和普通的方式对比有什么好处(一个线程能维护多个连接,减少线程数)
  • 使用多路复用的话怎么做到快速响应一个连接上的事件(非阻塞io,耗时任务丢给计算线程)
  • 非阻塞io和阻塞io区别

网络

  • tcp和udp的不同
  • tcp怎么处理丢包的问题的(ack,超时重传,接收缓冲,快重传)
  • 如果接收方发了重复ack了,但是对方一直没有回应会怎样(不知道,我说可能就丢弃接收缓冲的数据了)
  • 知道一个域名,怎么和他通信(dns,ip,路由)
  • http除了常用的get和post还有什么方法
  • 说了一个广播造成的问题问怎么解决,我想了一会才反应过来是广播风暴,我说我只记得可以用“生成树协议”
  • A要用到B服务器的服务,开了多个连接,但是只有一小部分连接成功了,怎么排查原因(我说可以用netstat查看一下两端的连接状态,比如可以判断B是否被SYN攻击了,还是单纯网络问题。 另外也可能B端的文件描述符用完了,他表示能想到文件描述符这个层面很好)

数据库

  • 索引的数据结构,与B树的区别
  • 事务的特性
  • 原子性怎么实现(undo log做回滚)
  • undo log什么情况会执行(崩溃重启)
  • 那重启时怎么判断是要做undo log还是redo log(不会……)
  • 隔离级别说一下
  • 和隔离级别对应的有三个问题说一下
  • 那隔离级别是怎么实现的(我说用锁,但是具体用什么锁怎么用我忘了)
  • 了解redis那其他的中间件例如*¥%¥#,#¥#%,H%454……有了解的吗(有一两个大概知道做什么的但是确实不了解)
  • 微服务呢(我了解个概念吧……)

智力题

本来已经结束了,结果我问他这轮怎么没写代码,他说你要的话我出几道题,口述即可

  1. 检测链表是否有环
  2. 圆形棋盘下棋,最后一个放的赢,问先手策略
  3. 2个玻璃球100层楼问题,没想到最优,只想到2分

#面经##Shopee##校招##C++工程师#
全部评论
楼主你好,请问你是实习、校招还是社招?岗位是什么?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复 分享
发布于 2020-08-24 16:49
楼主一面大概多久通知的二面啊
点赞 回复 分享
发布于 2020-08-24 17:24
纠正一个回答,隔离级别的实现是利用MVCC实现的,并不是锁。
点赞 回复 分享
发布于 2020-08-25 12:38

相关推荐

工作基本定了,比较满意。这深度学习真是难搞啊,论文看不懂,代码看不懂,不会改,创新点??? 还有一个月中期,怎么搞,已经抑郁了,没有小论文要求,我真是非常幸运了,不然就我这科研能力………… 感觉自己对自己失去信心,无时无刻不在否定自己取得一些成绩都是运气好罢了,真的能顺利毕业吗?严重内耗、无力感爆棚啊…………
AI牛可乐:哎呀,听起来你最近压力好大呀,毕业论文和工作的双重压力一定让你感觉像是背了两座山呢。深度学习确实挺复杂的,就像是要在一片迷雾中找到出路一样。但是,你已经很棒了,工作都定好了,这是很大的成就呢! 论文的事情,别太担心。每个人都有看不懂代码和论文的时候,这是正常的。至于创新点嘛,有时候灵感就像小猫一样,需要一点一点地哄出来的。你可以先试试把你看过的资料整理一下,说不定就能找到新的思路呢。 中期答辩前,你可以列个计划,一步一步来,把大问题分解成小问题,一点一点克服。记得,你不是一个人在战斗,你的导师、同学都是你的战友哦。 至于信心嘛,别否定自己,每个人都会有低谷的时候。你已经取得的成绩,都是你实力的体现。毕业不是问题,只要你不放弃,就一定能顺利走过去的。加油哦,我相信你可以的! 对了,如果你愿意的话,可以点击我的头像,我们私信聊,也许我能帮你出出主意,或者就是简单地聊聊天,分散一下你的注意力也好呀。🐮💪🌟
点赞 评论 收藏
分享
蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
2 20 评论
分享
牛客网
牛客企业服务