面经三篇

一、某初创AI定制旅游公司

  1. JVM内存模型,堆内存是怎么分的,对象什么时候进入老年代
  2. young gc 和full gc的区别以及触发时机;
  3. 什么时候会产生OOM,内存泄漏和内存溢出的区别和场景
  4. 线程池的工作原理,线程池参数该如何设置
  5. Spring的事务传播类型有哪些
  6. 事务失效的场景有哪些
  7. Reids有哪些数据结构,你工作中用到的有哪些,分别用来做什么
  8. 库存扣减的流程,用Redis做扣减,万一有一个场景,你库存只剩9张券,但是一个用户要用掉十张怎么办
  9. 你在工作过程中是怎么对SQL进行调优的?
  10. 索引失效的场景有哪些
  11. 有100w的数据让你一次性导出,你会怎么做

二、淘天一面

  1. 你对自己在项目中做得最满意的点有哪些
  2. Redis有哪些特性?
  3. zset的底层是怎么实现的?这种实现有什么优势?
  4. 你项目中的分布式锁是怎么实现的,为什么用这种实现方式,自己实现需要注意哪些问题?
  5. 项目中对于数据一致性是怎么解决的?在10w+QPS的并发下,你怎么做到最优的一致性保证?
  6. 项目中国产化数据库迁移的方案是怎么实现的?灰度验证具体是怎么操作的?根据用户号切流量,假设你这个用户在系统不存在,你要怎么处理?
  7. 对系统性能的优化做了哪些操作?
  8. 现在有一个30G的excel文件上传,并解析其内容落到数据库里,你的机器配置是4核16G(甚至更小),你要怎么保证不发生影响其他接口请求的情况下快速处理这批数据

面试官反馈:回答问题不够主动,不往深入去问就不主动讲,主观上觉得我对这些技术不会,深入问又能答得上来,另外在设计上对于某些极端情况的考虑不够完善。最后评价是觉得我技术广度够,深度稍有欠缺。面完之后甩了我两道笔试,额,笔试应该是过不了。。。

  1. 笔试两道(题目是英语的,不记得原题咋写,大概翻译一下)
    • Q1

      text
      复制代码
      /** * 给出以下原始代码,在此基础上做修改,最后用两个线程交替打印foo和bar * input: n = 2; * output: "foobarfoobar" * input: n = 3; * output: "foobarfoobarfoobar" */ public class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar"); } } }
    • Q2: 给一个数值n,如果他是偶数,就把他变成 n % 2,如果他是奇数,就把他变成n+1,同时也变成n-1,计算他们的最小变化次数 例如:输入n= 4;输出2;解释4->2->1变换两次 例如:输入n=7;输出4;解释 7->8->4->2->1或7->6->3->2->1

三、网易云一面

  1. 说说你负责的这些系统的调用链路大概是怎样一个流程,以及设计到的核心服务有哪些
  2. 你在项目中是如何解决超发问题的?讲讲具体的流程
  3. 对于这种场景,你怎么做并发控制呢?
  4. 在你的现有项目中,你觉得还有没有能进行改进的地方?说说你的改进思路
  5. 对于分布式事务,你说用的是TCC,能讲讲在哪个场景用了,具体是怎么实现的吗?
  6. 项目中哪些地方用到了重试机制,具体是怎么做的?
  7. 你对SQL做了哪些优化,能举个例子说说吗?
  8. 你的库存扣减是怎么做的,说说详细实现步骤
  9. 有没有使用过vibe coding工具,对AI编程有什么看法,自己有去了解AI相关的开发这一块吗?

二和三只是简略说一下大致方向,实际上问得比较深入,一步步问到你答不出来为止。 其实这些天面试下来的感觉就是:中小型公司偏八股,先上八股再简单了解一下项目及实现,一般不会问得很深,偏向于考察你是否会这项技术(不管是不是真会,背上了就是会);大公司会偏项目,然后由项目层层递进引出底层原理及各种极端情况的解决方案,偏向于考察你是否真正使用过对应技术做过项目,并且你是懂原理去做的技术选型,以及考察你的思维应变能力,对各种复杂情况的考虑完整性。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
麋鹿
下载 APP