7.26 虾皮 新加坡 后端校招提前批一面、二面(凉)

已凉,继续奋战秋招
7.26二面 58分钟
又紧张到忘记录屏,哎楼主真是不争气
几乎没有问八股,一些小的八股基本穿插在场景设计中,主要是一个算法题(可能时间比较紧张,没让写代码,就讲讲思路),加上一个场景设计,楼主本身没有项目经验,场景设计我认为挺简单,但是个人答得不是太好,尤其是很多相关的八股临场了没有讲解清楚。面试官全程引导,建议没有项目经验的小伙伴多多准备,把八股代入到实际场景中去理解。
算法题
给一个无序数组,让找出中位数,给出时间复杂度。
楼主大概讲了下 快排 调用划分算法的思路(应该是最优思路了吧)。可惜复杂度说不清楚,只能确定上界是O(NlogN),后来面试官说其实可以证明这个算法复杂度是 O(N),没看过算法导论实在不会啊。

数据库场景设计
设计一个表,应用场景是商品销售,商品id、店铺id、产地、产品名几个字段,要求整个设计中一直能够高效地实现两个功能接口:通过商品id查找、通过店铺id查找
面试官很贴心,表示不需要按语法写,只要用伪代码写出来就行,建表、建索引的思路。
然后慢慢引导到后续的优化
  1. 主键怎么设置
  2. 商品id怎么生成 —— 自增
  3. 产品名你设计 varchar(100) 100个字节够用吗,有中文怎么办,了解中文编码吗 —— 多数情况应该够用了。 utf-8,中文编码长度记错了,答约多数需要2个字节,少数3个(面试官指出错误,我说不记得了,总之肯定比英文多一些,具体忘记了,其实多数汉字需要3个字节,就不该装这个B,哎)
  4. 还有哪些字段可以加索引,给产地加索引可以吗 —— 区分度不大的话,没必要
  5. 数据变多,怎么继续保证接口2 —— 垂直分表
  6. 垂直分表的话,容量还是不够,怎么办 —— 水平分表
  7. 水平分表了,主键还是原来那个吗,主键依赖一个服务器生成吗,自增性能 —— 雪花算法,
  8. 怎么保证接口2 —— 答按照店铺id分表
  9. 那么主键仍然是商品,怎么保证唯一性,递增性,怎么保证接口1 —— 类雪花算法,店铺id也加入到商品id中
  10. 查询过多,数据库撑不住了怎么办 —— Redis缓存(没提MySQL读写分离,面试官帮我讲了,血亏啊!!!明明八股看过的)
  11. 只要一台 redis 服务器吗 —— 可以多台,Cluster。
  12. Cluster里面某一个节点挂掉了怎么办 —— 如果从节点挂掉影响不大,主节点挂掉可以故障转移(没提选举,完全忘了,不过面试官也没追问,追问了我估计也想不起来细节)、
  13. Cluster新加入某个节点怎么办 —— 不熟悉 Cluster,求放过
  14. 有写请求怎么保证主从一致 —— 先写DB,再直接淘汰缓存
  15. 写完DB服务挂掉了,连接不上缓存层,外部读到的都是旧数据怎么办 —— 短时间的主从不一致无法避免,反过来先改缓存然后DB挂了一样会主从不一致,先改DB的,然后不停重试改缓存,影响会小点。(面试官说最好缓存加过期时间,天哪!我已经默认缓存有过期时间了,竟然完全忘记了。我怀疑我答出缓存过期之后面试官就会继续追问缓存雪崩那几个了,八股天天看的啊,血亏 * 2!!!)
  16. 反问
反正经验教训就是大家背一些优化性质的八股的时候一定要多联系联系相关的场景,不然就会像我一样背了也是白背,真正该调用的时候一个屁都放不出来。
哎,希望能有hr面吧,面试官说我一面的面评不错,基础挺扎实代码也写得挺好,投了二十多份简历了,不想再面了啊。。。


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7.16一面 1小时15分钟
今天刚面完,楼主非科班,无CS基础,离职后花了半年考研转CS,还没开始上学,无项目经历。Shopee 是最后投的,前面打算垫好几家炮灰面,结果新加坡这边效率太高了,隔天约笔试,隔个周末就约面试,变成我的处女面,打得我措手不及。
处女面太紧张了,忘记开 OBS 录屏复盘,只能纯靠记忆复盘一下。
面试官人很好,感觉手下留情了,出的题都是常见八股题,出题的时候基本都有引导,非常流畅一点也不生硬。

对了,我投的新加坡岗,之前的笔试选择题都是英文,不知道是不是新加坡都这样,投国内岗的小伙伴是做的英文题还是中文题呢?当时也没看到切换选项,硬着头皮硬撸,好多八股里的名词可能没反应过来。

上来先撸代码
LC 72 题 编辑距离,感谢前面贡献面经的老哥,面试前一天我去医院排队的间隙抽空看完了这题题解。后面的朋友这题绝对要看,绝对是高频题。
代码撸了20分钟,加上讲思路一共30分钟左右吧。
追问,这是一道经典dp题,你觉得什么场景下你会想到用dp去解题?
  1. 数据结构
  2. Java 都有哪些数据类型?
  3. 说说哈希表怎么实现的吧。
  4. 不限于Java,哈希表还有哪些冲突解决方式?
  5. 数据库
  6. 数据库一般有哪些索引?
  7. B+ 树 和 B 树作索引有什么优劣,哪种更适合 MySQL?
  8. Redis 常见数据结构了解吗?我问是底层结构还是对象结构,面试官告诉我 Redis 没有对象(我有点懵,直接黑人问号,又不敢怼,就随便说了下
  9. 漏说了 Set 和 ZSet,你可能没实战用过,没关系,想象一下这两种数据结构的应用场景?
  10. Java基础
  11. 说说 == 和 equals 的关系。
  12. 讲讲面向对象的特性。
  13. 讲讲多态吧。
  14. JVM
  15. 聊聊 Java 的内存管理,Java 的垃圾清理了解过吗?大致讲讲流程,不用拘泥于某种具体的收集器。
  16. Java 的引用类型了解吗,跟垃圾收集有关的,讲讲他们跟垃圾收集的关系?
  17. Java 的堆和栈了解吗,讲一讲用途,为什么要形成这两个分区?
  18. 具体讲讲栈有什么特点,为什么这种结构适合于线程执行?
  19. 计算机网络
  20. TCP UDP的各自特点
  21. 你提到 TCP 可靠,TCP 首部有哪些内容保证可靠性?
  22. 你提到 TCP 面向流,那么双方用什么机制验证数据是否传输完毕?(答曰不知道,面试官提示不在运输层实现,反应过来是应用层加字段)
  23. TCP 三次握手
  24. 操作系统
  25. 讲讲线程,线程怎么通信?
  26. 共享内存,怎么防止并发冲突?
  27. 加锁,会产生死锁,死锁产生的条件?
  28. 死锁如何避免?
感觉自己还是蛮幸运的,这些题都是八股、面经的高频题了吧,希望有个二面通知吧。希望大家都能拿到满意的 Offer。
#Shopee##面经##校招#
全部评论
想问问,栈这个结构为什么适合于线程执行。这个问题要怎么解答?
1 回复 分享
发布于 2021-07-17 10:05
说Redis没有Object应该是指C没有面向对象这种语言特性,即RedisObject也并不真的是个Object。 但是一般来说C能用结构体很好的模拟对象了,说它是对象也行罢
1 回复 分享
发布于 2021-07-17 19:13
一年经验社招 看了一下全部都会 我打算明天投个简历试试
1 回复 分享
发布于 2021-07-18 02:54
老哥,最近笔试。留个联系方式指导一下笔试吧
点赞 回复 分享
发布于 2021-07-16 22:00
lc72也太难了吧
点赞 回复 分享
发布于 2021-07-16 23:27
楼主有消息了吗
点赞 回复 分享
发布于 2021-07-17 01:15
楼主 虾皮新加坡的意思是 之后工作要去新加坡吗?
点赞 回复 分享
发布于 2021-07-17 08:45
借个楼打个广告~~~网易2022届秋招火热开启,速来尝试,先到先得https://www.nowcoder.com/discuss/610659
点赞 回复 分享
发布于 2021-07-17 09:57
老哥啥专业
点赞 回复 分享
发布于 2021-07-17 12:19
🤣😂😂😂 中午刚笔试完 感觉选择题没做好。。。哭死了
点赞 回复 分享
发布于 2021-07-17 13:25
我的妈呀,这个编辑距离可是困难题,我连看题解都要花不少时间,这也太可怕了吧
点赞 回复 分享
发布于 2021-07-17 15:15
能说出redis里没有对象的应该没有专门研究过redisObject的实现
点赞 回复 分享
发布于 2021-07-17 15:32
楼主不是考研上岸了吗,为什么还投秋招啊
点赞 回复 分享
发布于 2021-07-17 17:57
。。。虾皮新加坡不是英文面吗。。。
点赞 回复 分享
发布于 2021-07-17 18:28
请教一下第22个问题,在应用层加字段验证消息是否传输完毕 这个是什么意思呀?
点赞 回复 分享
发布于 2021-07-17 21:27
老哥请问笔试面试的算法,输入输出都要自己写吗
点赞 回复 分享
发布于 2021-07-20 01:26
请问二面完多久出的结果啊
点赞 回复 分享
发布于 2021-08-17 17:03
谢谢分享
点赞 回复 分享
发布于 2021-09-05 07:39
我擦,这也太难了
点赞 回复 分享
发布于 2022-03-15 00:10
你好!请问你在校招之前有过后端相关的实习经历吗?
点赞 回复 分享
发布于 2022-04-01 20:43

相关推荐

时长 60min1. 自我介绍2. 简单介绍下两个项目3. 分布式缓存项目架构如何设计的4. 为什么这样做架构设计5. 如何做的数据更新6. 缓存节点都缓存哪些数据,面对大量热数据场景会发生什么,有什么解决办法7. 用哈希槽会发生什么问题,该怎么解决8. 讲一下 raft 算法9. 如果集群在两个机房,这两个机房断开网络连接了,raft 会发生什么?后面网络恢复了,会发生什么?10. 讲一下一致性哈希11. 如果一个节点下线了,用一致性哈希会发生什么12. Go 语言 GMP 讲一下13. 如果有 4 个计算密集型任务,996 个 IO 密集型任务,用协程处理,IO 密集型任务会对计算密集型任务造成影响吗?14. 协程线程的区别15. 手撕,实现一个缓存结构,最大容量 64M,对于访问次数较高的热数据要长期保存,访问次数较低的数据可以被替换(写了一个 LRU-K16. 有没有更好的解决方法?17. url 输入到浏览器后发生了什么18. http 内容是如何解析的19. 对虾皮有多少了解20. 个人的最大优势是什么21. 你是如何保持对编程的热爱的22. 平时有什么别的爱好23. 为什么喜欢玩单机游戏24. 有没有什么最喜欢的游戏,为什么喜欢25. 过去的学习生活中有没有让你印象最深对你影响最大的人和事26. 反问约了下周 hr 面,许愿 oc 🙏🙏
收到oc我将化身山孝子:好难
虾皮信息HR面85人在聊 查看26道真题和解析
点赞 评论 收藏
分享
全程1h,面试官水平很高,会一步步追问到底层,给你时间思考是我太菜了项目篇:1.介绍项目背景2.介绍其中一个亮点Java篇:1.hashmap的存储结构?使用哪个类加载器加载的?2.String s = new String("123")会在哪些内存空间分配内存?-- 此处面试官试图转移到JVM失败---3.Object类有哪些常用方法?equals跟hashCode有什么关系吗?4.Object类有跟并发相关的方法吗?-- 此处转移到并发---5.有哪些手段控制多线程并发?6.如何在主线程中启动一组子线程并发处理任务,并在所有子线程任务完成后通知主线程继续执行后续操作(例如记录日志或发送通知)?spring篇:1.spring的事务管理是如何实现的中间件篇:1.Redis 对 CAP 的取舍平衡2.Redis的高可用是如何实现的3.MySql事务的隔离等级?如何实现的?4.快照读是什么?如何实现的?计网篇:1.HTTP报文有哪些部分?2.如何解析 HTTP 协议的报文(字节流)并解析得到数据?算法题:1.快排(口述)2.三数之和(手撕)现在摸清规律了,面试基本上就是先问项目,没啥技术点就转到八股。八股就是每个专题分别问,一个专题中问到你不会的就结束该专题,问下一个专题。因此遇到不会的,应当尽量引导别人问你该专题当中的其他问题,避免一个专题结束时间过快。
虾皮信息一面282人在聊 查看17道真题和解析
点赞 评论 收藏
分享
19 205 评论
分享
牛客网
牛客企业服务