WXG后台开发实习-一二三面凉经

一面 3.7

做题两道(做题+讲思路 共 50min 整)

  1. 从下到上层序遍历二叉树;ac了
  2. 力扣378,有序数组第k小;没写出来,讲了讲思路,面试官说思路也错了,尬。❌

项目(40min)

SaaS短链接项目(20min)

  1. 介绍项目的思路和功能
  2. 我看项目时间并不长?怎么回事呢?(我只实现了核心逻辑)
  3. 我看你用到了分库分表,讲讲你的数据库表怎么设计的?怎么做分片的?(整整扯了4min)
  4. 用布隆过滤器的目的是什么?布隆过滤器在你的代码里具体是怎么实现的?
  5. 什么是恶意请求?你的项目怎么处理恶意请求的?(其实就缓存三兄弟)
  6. 你用到缓存,那你是怎么控制数据库暂存到缓存的时机呢?
  7. 缓存预热在你的项目里具体怎么做的?
  8. 分布式锁在项目里是怎么实现?你知道内部实现细节吗?(扯了一下Redisson看门狗、重试等等)
  9. “分布式锁保证同时只有一个线程访问数据库重建缓存”,那其他线程呢?直接sleep吗?有没有考虑更安全更高效的方式?(❌,我只会sleep)

网页音视频项目(20min)

  1. 介绍项目思路与过程
  2. 我看你这项目时间也不长,为什么呢?(比赛项目,官方限时)
  3. 怎么进行服务拆分的?依据呢?
  4. 你们的视频播放怎么做的?(直接对象存储)
  5. 点赞功能怎么设计的?(整整扯了3min)
  6. Redis里保存有哪些数据?底层数据结构了解吗?(八股吟唱)
  7. 写数据库和写缓存是怎么保证一致性的?MQ在这里面起到了怎么作用?
  8. 点赞和关注的表结构怎么设计的?索引怎么设计的?
  9. 讲讲Elasticsearch的原理和查询流程?
  10. 你的项目怎么应对并发注册的?分布式锁一定能保证没有重复注册吗?有兜底策略吗?(唯一索引兜底)
  11. 你了解Redis处理请求的过程吗?(第一时间想到IO多路复用,面试官说对对他就是想问这个,八股吟唱)
  12. 我看你好像很了解Redis,那你讲讲Redis的主从集群呢?( 八股吟唱:RDB、全量同步、增量同步....)
  13. 那你再讲讲Redis的分片集群?(八股吟唱:一致性哈希、虚拟节点、槽位...)
  14. cluster模式下最多多少个分片?
  15. 你刚刚讲的只解决了多key问题,那假设一个key非常热放到哪个实例都会被打垮怎么办?

反问

  1. 技术栈是C++吗?Java转快不快?
  2. 有转正机会吗?
  3. 具体什么组?
  4. 有几轮面试?(面试官说至少三轮,寄了)

总结

实习快2个月没碰八股文和算法了,想着tx也不看面评,就当积累经验了。没想到面试官人挺好,全程项目以及引申八股文,而且一直在和我讨论而不是质问,我甚至感觉他问得太简单了,不符合wxg的一贯作风。总之是我这么多次面试里面试体验最好的一次,其次是快手。

二面 3.11

做题三道(做题 + 讲解+ 设计题拷打 共 75min)

  1. A = 1, B = 2,....,AA = 27,以此类推,实现一个将字符串转换成数字的方法,需要注意输入异常处理和栈溢出处理。(其实就是26进制转换,但是实际写的时候没注意异常处理,从来没碰到过算法题需要处理异常...
  2. 有两棵二叉搜索树,找到最大重叠部分的节点个数,1)重叠部分节点结构需要相同 2)重叠部分对应节点值需要相同 3)最大重叠部分有多个,输出其中一个即可。(开始没思路,后面想到二叉搜索树特点的时候五分钟就写出来了
  3. 系统设计题,大意如下
  4. 员工可以付费发送特殊消息,即发送特殊消息前需要扣除企业余额,现在需要设计一个商城系统,用于调用支付平台提供的两个接口 checkBalance() 查询企业账户余额以及 pay(orderid, price)支付金额,有如下两个问题 1)支付金额接口耗时很久,用户需要很长时间才能发送消息成功,体验不好 2)支付平台很不稳定,会不定时宕机或者拒绝服务或者小波动,宕机时有可能持续几个小时;请说明你的设计思路,如果可以的话可以写出核心代码(这个部分拷打时间最长,接近15分钟,面试官一直提出新的问题以及否定我的思路,不过我最后也提出来很多不错的方案见招拆招,最后面试官好像还挺满意)

八股文(共 25 min)

  1. 出勤几天?什么时候到岗?...
  2. 什么专业课学得最差?(我说编译原理,他就过了没细问😂)
  3. LRUcache的内部数据结构
  4. HTTPS了解吗,CA证书是怎么获得的?一定安全吗?能有中间人吗?...(问得巨细,我最后直接说不了解)
  5. 又一道场景设计题:现在需要实现想B站那样多端同步最近观看视频以及空降到具体的分秒,假设有1000w人,需要精确到1s,你的系统只能承载500w的QPS,怎么设计?(中间我说假设是同一台设备可以用浏览器缓存,面试官直接打断我让我不要绕开问题...
  6. Redis高可用如何保证?持久化机制?
  7. 了解分布式组件吗?了解Raft、paxos吗?
  8. 了解leveldb吗?
  9. MySQL索引
  10. 网络框架用过哪些?RPC用过哪些?
  11. 协程、线程、进程
  12. 是否有过实际项目开发经验,实习项目除外?

反问

答得太差,不敢反问

总结

很压力,面试官气场强大甚至有些咄咄逼人,中间快崩溃了,答得一塌糊涂,不过面完几个小时就收到三面邀请了,腾讯这是有多缺人啊,你是真饿了,我这样的fw都敢让我进三面。

三面 3.12

做题三道(90min,其实60min就写完了,但是面试官好像在开会,让我等)

  1. 某个直播平台计划开发一个高热直播间监控系统,具体需求是:
  2. 可以管理所有直播,新开播就要加入到系统里面,直播结束就要从系统去掉
  3. 直播间热度是会不断变化(例如不断有人加入、点赞、送礼物、退出等因素),热度出现变化时往高热系统更新这个直播当前热度值(高频,时间复杂度希望尽量低)
  4. 运营人员日常巡查希望可以在任何时刻都知道当前热度最高的100个直播间(低频)
  5. 30万个员工,其工卡号码分别是1~30万,抽10万个员工发奖品。有一个随机数生成函数rand()能够生成(0~65535]的整数,请写一个公平的抽奖程序,输出这10万个员工的工卡号码。
  6. 给你一个正整数k和一个有三个元素的数组,求这在 k 层的满二叉搜索树(1 - 2^k)中这三个元素的最小公共祖先

八股文(10 min)

  1. HTTPS(这次流程无比,对答如流)
  2. 分库分表
  3. ES原理
  4. Kafka架构

总结

面试官很忙,前面一直文字交流,还让我干等了半个小时。看到题目的时候心里咯噔一下,这个面经看过一模一样的,但是我当时没有仔细研究,最后第二道随机概率题没做出来。八股文环节已经很晚了,面试官好像不想问太多,随便问了几个问题就匆匆结束了,第二天秒挂。哎,收收心准备海投暑期了。

实习面试经验 文章被收录于专栏

找实习过程中的面经

全部评论
唉,这都能挂,我赶不上你的5%
33 回复 分享
发布于 2024-03-13 23:45 北京
这个三面的题有点恐怖啊
7 回复 分享
发布于 2024-03-13 23:29 四川
腾讯真的不看面评吗🧐
7 回复 分享
发布于 2024-03-14 00:27 上海
这是春招还是实习?😱
4 回复 分享
发布于 2024-03-14 21:15 陕西
佬,看看得物春招,主页帖子
3 回复 分享
发布于 2024-03-14 08:13 陕西
这这这强度太高了
3 回复 分享
发布于 2024-03-14 11:11 上海
同腾讯三面挂,安心暑期了
3 回复 分享
发布于 2024-03-14 14:04 上海
不是 都三面了还搞kpi吗
3 回复 分享
发布于 2024-03-14 15:30 福建
佬,二面那个最大重叠二叉树咋做啊?
2 回复 分享
发布于 2024-03-15 00:13 四川
30万员工咋做啊
2 回复 分享
发布于 2024-03-15 11:21 四川
↑春招 实习开了 试试↑
2 回复 分享
发布于 2024-03-15 12:28 广东
羡慕wxg
1 回复 分享
发布于 2024-03-14 07:49 广东
层序遍历从下到上怎么实现啊?只知道从上到下
1 回复 分享
发布于 2024-03-14 12:08 浙江
真汗流浃背
1 回复 分享
发布于 2024-03-14 13:13 江苏
老哥你是在哪看到挂的啊,发短信还是官网流程
1 回复 分享
发布于 2024-03-14 15:02 陕西
我也做了这个项目,不过是怎么说 4 分钟的。我看你用到了分库分表,讲讲你的数据库表怎么设计的?怎么做分片的?(整整扯了4min)
1 回复 分享
发布于 2024-03-15 02:52 北京
太猛了 这都挂了
1 回复 分享
发布于 2024-03-15 09:20 四川
三面不是HR面嘛?还是说复试会有多次?
1 回复 分享
发布于 2024-03-15 09:37 新加坡
场景题太多了吧
1 回复 分享
发布于 2024-03-16 10:45 山东
看到第二面已经汗流浃背了
点赞 回复 分享
发布于 2024-03-14 07:51 北京

相关推荐

03-12 20:34
门头沟学院 Java
### 字节生活服务成都一面面经---#### **一、项目相关**1. **第一个项目**     - **登录模块实现**       - 短信登录流程如何设计?验证码如何存储(Redis哈希结构)?       - Token与Cookie的区别?分布式场景下如何解决Session共享问题?       - Token刷新机制如何优化用户体验?     - **秒杀场景设计**       - 如何解决库存超卖问题?(乐观锁、分布式锁)       - 分布式锁的实现原理(Redis Redisson的可重入、超时续约机制)?       - 如何通过消息队列(RabbitMQ + Lua脚本)优化秒杀性能?  2. **第二个项目**     - 如何基于Redis发布订阅实现动态调整?     - 如何采集线程池指标并上传监控中心?  ---#### **二、技术问题**1. **Redis**     - Redis数据结构及适用场景(String、Hash、ZSet等)?     - ZSet如何实现排行榜?Hash如何存储对象?     - Redis分布式锁的底层实现(Redisson的Watch Dog机制)?  2. **MySQL**     - 索引类型(主键索引、联合索引、前缀索引)?     - B+树的结构特点?联合索引的最左匹配原则?     - 事务ACID特性及隔离级别(读未提交、读已提交、可重复读、串行化)?  3. **网络协议**     - HTTP请求报文组成(请求行、请求头、请求体)?     - `Content-Length`的作用及必要性?  ---#### **三、编程题**1. **矩阵中的最大岛屿面积**     - **题目**:给定二进制矩阵,计算由相邻1组成的最大面积。     - **思路**:DFS/BFS遍历,标记已访问节点。  2. **二叉树路径总和**     - **题目**:找出根节点到叶子节点路径和为给定值的所有路径。     - **思路**:递归遍历,维护路径和当前和,叶子节点时校验结果。  ---#### **四、反问环节**1. 部门业务方向?     - 生活服务业务(类似美团,聚焦团购、酒旅等场景的用户体验优化)。  2. 对实习生的要求?     - 基础技术能力、需求落地能力、学习能力。  3. 面试流程?     - 技术面2-3轮 + HR面。  4. 实习时间要求?     - 一周5天,持续半年以上。  ---#### **五、总结建议**- **项目**:需深入细节,如Redis数据结构选型、锁的优化逻辑。  - **基础**:加强MySQL索引原理、HTTP协议细节、Redis底层机制。  - **代码**:注意边界条件(如矩阵越界)、DFS/BFS模板熟练度。
查看16道真题和解析
点赞 评论 收藏
分享
03-12 20:39
门头沟学院 Java
---#### **一、项目相关**1. **超卖问题解决方案**     - 如何通过乐观锁解决库存超卖?     - 分布式锁(Redis)如何实现一人一单限制?     - 乐观锁失败后的处理机制(直接返回失败?是否有重试?)     - 分布式锁超时场景下的问题(锁提前释放导致并发问题,看门狗机制如何续期?)2. **Redis应用**     - CAP理论在Redis主从模式中的体现(主从异步复制牺牲一致性保证可用性)     - Redis哨兵模式与集群模式的区别?---#### **二、数据库**1. **MySQL事务**     - 事务隔离级别有哪些?默认级别是什么?     - 事务传播机制(如`PROPAGATION_REQUIRED`、`PROPAGATION_REQUIRES_NEW`的区别)  ---#### **三、并发与多线程**1. **线程池**     - 核心参数(核心线程数、最大线程数、队列类型、拒绝策略)     - 工作原理(任务提交流程、非核心线程创建条件)  2. **锁机制**     - 分布式锁(Redisson)与本地锁(synchronized)的适用场景差异     - 乐观锁实现方式(MySQL的CAS操作)  ---#### **四、Java基础**1. **类加载机制**     - 双亲委派模型流程及作用(保护核心类库)     - 如何打破双亲委派(自定义类加载器重写`loadClass`方法)  2. **集合框架**     - HashMap冲突解决(链表转红黑树)  ---#### **五、操作系统**1. **内存管理**     - 页面置换中的“抖动”现象(频繁换页导致性能下降)     - 页面置换算法(LRU、LFU、FIFO)  2. **调度算法**     - 常见作业调度算法(短作业优先、长作业优先、高响应比优先)  ---#### **六、网络**1. **TCP协议**     - TCP报文头字段(源/目的端口、序列号、ACK/SYN/FIN标志位、窗口大小)  ---#### **七、算法与数据结构**1. **堆的应用**     - 优先级队列底层实现(最大堆/最小堆)     - Top K问题解法(维护大小为K的最小堆)  2. **经典算法**     - 快排实现思路(基准选择、分区、递归)     - 最短路径算法(Dijkstra、Floyd)  3. **编程题**     - **硬币找零问题**(动态规划,求最少硬币数)     - **字符串频次统计**(前缀和优化查询效率)  ---#### **八、其他**1. **系统设计**     - CAP理论的实际取舍(Redis主从模式牺牲C保证AP)  ---### **参考答案/关键点**1. **乐观锁与分布式锁**     - 乐观锁通过版本号/CAS实现,失败后直接返回错误;分布式锁需结合超时和续期机制(Redisson看门狗)。  2. **事务传播机制**     - `PROPAGATION_REQUIRED`:加入当前事务;`PROPAGATION_REQUIRES_NEW`:新建独立事务。  3. **双亲委派打破**     - 自定义类加载器重写`loadClass`方法,如Tomcat为隔离Web应用打破委派。  4. **TCP三次握手**     - SYN、SYN-ACK、ACK报文交互,序列号保证可靠传输。
查看25道真题和解析
点赞 评论 收藏
分享
03-06 18:29
南京大学 Java
上来就是一小时四道题:1. 给定字符串version1和version2,如果version1>version2返回1,否则返回-1,相等返回0。不考虑前置0,例如“1.001”和“1.1”两者视为相等。2. 设计一个类snapshotArray(忘记名字了)类,支持操作:    - snapshotArray(int length):初始化长度为length的数据结构;    - set(int idx, int val):设置索引idx处的值为val;    - int snap():生成调用时刻的快照,返回快照id,快照id为调用snap的次数-1;    - int get(int snap_id, int idx):返回快照snap_id处索引位为idx的值。    要求:整体空间复杂度O(N^2),snap时间复杂度O(1)3. 定义特殊数组:任意两个相邻元素的奇偶性不同。给定一个数组和查询数组(每个元素对应一次查询),返回结果数组,表示每个查询的区间内是否为特殊数组。要求:时间复杂度为O(N)4. 命令行,统计/tmp/a.txt的行数;硬链接和符号链接的区别;命令行,查找日志文件中所有包含user_a的内容(实习+项目)1. Redis实现发布订阅模型的底层和kafka有什么区别?2. 消息丢失怎么办?3. 除了Redis发布订阅模型有没有了解过其他队列?kafka底层是什么样的架构?4. 如何使用kafka实现顺序消费?(给了个用户下单的场景,其中下单和支付将作为两个消息,如何保证下单和支付处理的先后顺序)5. mysql索引底层数据结构?为什么不使用红黑树?6. seata有哪些模式?八股:1. HTTPS如何做身份认证?2. 知道数字签名吗?3. 多线程模型和多进程模型的区别?多进程有什么多线程没有的优势?4. 知道字节序吗?5. 知道epoll吗?6. 设计模式了解哪些?适配器模式?一共面了两个小时出头,当场就感觉要挂了因为很多问题没有答好,但整整拖了我九天才挂,实在是有点恶心人了,再也不面wxg了
点赞 评论 收藏
分享
评论
59
410
分享

创作者周榜

更多
牛客网
牛客企业服务