WXG后台开发实习-一二三面凉经
一面 3.7
做题两道(做题+讲思路 共 50min 整)
- 从下到上层序遍历二叉树;ac了
- 力扣378,有序数组第k小;没写出来,讲了讲思路,面试官说思路也错了,尬。❌
项目(40min)
SaaS短链接项目(20min)
- 介绍项目的思路和功能
- 我看项目时间并不长?怎么回事呢?(我只实现了核心逻辑)
- 我看你用到了分库分表,讲讲你的数据库表怎么设计的?怎么做分片的?(整整扯了4min)
- 用布隆过滤器的目的是什么?布隆过滤器在你的代码里具体是怎么实现的?
- 什么是恶意请求?你的项目怎么处理恶意请求的?(其实就缓存三兄弟)
- 你用到缓存,那你是怎么控制数据库暂存到缓存的时机呢?
- 缓存预热在你的项目里具体怎么做的?
- 分布式锁在项目里是怎么实现?你知道内部实现细节吗?(扯了一下Redisson看门狗、重试等等)
- “分布式锁保证同时只有一个线程访问数据库重建缓存”,那其他线程呢?直接sleep吗?有没有考虑更安全更高效的方式?(❌,我只会sleep)
网页音视频项目(20min)
- 介绍项目思路与过程
- 我看你这项目时间也不长,为什么呢?(比赛项目,官方限时)
- 怎么进行服务拆分的?依据呢?
- 你们的视频播放怎么做的?(直接对象存储)
- 点赞功能怎么设计的?(整整扯了3min)
- Redis里保存有哪些数据?底层数据结构了解吗?(八股吟唱)
- 写数据库和写缓存是怎么保证一致性的?MQ在这里面起到了怎么作用?
- 点赞和关注的表结构怎么设计的?索引怎么设计的?
- 讲讲Elasticsearch的原理和查询流程?
- 你的项目怎么应对并发注册的?分布式锁一定能保证没有重复注册吗?有兜底策略吗?(唯一索引兜底)
- 你了解Redis处理请求的过程吗?(第一时间想到IO多路复用,面试官说对对他就是想问这个,八股吟唱)
- 我看你好像很了解Redis,那你讲讲Redis的主从集群呢?( 八股吟唱:RDB、全量同步、增量同步....)
- 那你再讲讲Redis的分片集群?(八股吟唱:一致性哈希、虚拟节点、槽位...)
- cluster模式下最多多少个分片?
- 你刚刚讲的只解决了多key问题,那假设一个key非常热放到哪个实例都会被打垮怎么办?
反问
- 技术栈是C++吗?Java转快不快?
- 有转正机会吗?
- 具体什么组?
- 有几轮面试?(面试官说至少三轮,寄了)
总结
实习快2个月没碰八股文和算法了,想着tx也不看面评,就当积累经验了。没想到面试官人挺好,全程项目以及引申八股文,而且一直在和我讨论而不是质问,我甚至感觉他问得太简单了,不符合wxg的一贯作风。总之是我这么多次面试里面试体验最好的一次,其次是快手。
二面 3.11
做题三道(做题 + 讲解+ 设计题拷打 共 75min)
- A = 1, B = 2,....,AA = 27,以此类推,实现一个将字符串转换成数字的方法,需要注意输入异常处理和栈溢出处理。(其实就是26进制转换,但是实际写的时候没注意异常处理,从来没碰到过算法题需要处理异常...)
- 有两棵二叉搜索树,找到最大重叠部分的节点个数,1)重叠部分节点结构需要相同 2)重叠部分对应节点值需要相同 3)最大重叠部分有多个,输出其中一个即可。(开始没思路,后面想到二叉搜索树特点的时候五分钟就写出来了)
- 系统设计题,大意如下
- 员工可以付费发送特殊消息,即发送特殊消息前需要扣除企业余额,现在需要设计一个商城系统,用于调用支付平台提供的两个接口 checkBalance() 查询企业账户余额以及 pay(orderid, price)支付金额,有如下两个问题 1)支付金额接口耗时很久,用户需要很长时间才能发送消息成功,体验不好 2)支付平台很不稳定,会不定时宕机或者拒绝服务或者小波动,宕机时有可能持续几个小时;请说明你的设计思路,如果可以的话可以写出核心代码(这个部分拷打时间最长,接近15分钟,面试官一直提出新的问题以及否定我的思路,不过我最后也提出来很多不错的方案见招拆招,最后面试官好像还挺满意)
八股文(共 25 min)
- 出勤几天?什么时候到岗?...
- 什么专业课学得最差?(我说编译原理,他就过了没细问😂)
- LRUcache的内部数据结构
- HTTPS了解吗,CA证书是怎么获得的?一定安全吗?能有中间人吗?...(问得巨细,我最后直接说不了解)
- 又一道场景设计题:现在需要实现想B站那样多端同步最近观看视频以及空降到具体的分秒,假设有1000w人,需要精确到1s,你的系统只能承载500w的QPS,怎么设计?(中间我说假设是同一台设备可以用浏览器缓存,面试官直接打断我让我不要绕开问题...)
- Redis高可用如何保证?持久化机制?
- 了解分布式组件吗?了解Raft、paxos吗?
- 了解leveldb吗?
- MySQL索引
- 网络框架用过哪些?RPC用过哪些?
- 协程、线程、进程
- 是否有过实际项目开发经验,实习项目除外?
反问
答得太差,不敢反问
总结
很压力,面试官气场强大甚至有些咄咄逼人,中间快崩溃了,答得一塌糊涂,不过面完几个小时就收到三面邀请了,腾讯这是有多缺人啊,你是真饿了,我这样的fw都敢让我进三面。
三面 3.12
做题三道(90min,其实60min就写完了,但是面试官好像在开会,让我等)
- 某个直播平台计划开发一个高热直播间监控系统,具体需求是:
- 可以管理所有直播,新开播就要加入到系统里面,直播结束就要从系统去掉
- 直播间热度是会不断变化(例如不断有人加入、点赞、送礼物、退出等因素),热度出现变化时往高热系统更新这个直播当前热度值(高频,时间复杂度希望尽量低)
- 运营人员日常巡查希望可以在任何时刻都知道当前热度最高的100个直播间(低频)
- 30万个员工,其工卡号码分别是1~30万,抽10万个员工发奖品。有一个随机数生成函数rand()能够生成(0~65535]的整数,请写一个公平的抽奖程序,输出这10万个员工的工卡号码。
- 给你一个正整数k和一个有三个元素的数组,求这在 k 层的满二叉搜索树(1 - 2^k)中这三个元素的最小公共祖先
八股文(10 min)
- HTTPS(这次流程无比,对答如流)
- 分库分表
- ES原理
- Kafka架构
总结
面试官很忙,前面一直文字交流,还让我干等了半个小时。看到题目的时候心里咯噔一下,这个面经看过一模一样的,但是我当时没有仔细研究,最后第二道随机概率题没做出来。八股文环节已经很晚了,面试官好像不想问太多,随便问了几个问题就匆匆结束了,第二天秒挂。哎,收收心准备海投暑期了。
实习面试经验 文章被收录于专栏
找实习过程中的面经