面灵AI→

美的库卡 Java 一面(10.13)

轮次
一面
时间
2026-10
来源
牛客网

《面试题目》

  1. 抢票怎么设计的?怎么防止超卖?
  2. 数据库表越来越大、查询接口越来越慢怎么办?
  3. 客户端和服务端能 ping 通,但是无法连接怎么办?
  4. 未来的职业发展方向是什么?
  5. 你对机器人自动化业务开发方向的理解是什么?

《参考解析》

抢票场景怎么防超卖:抢票的本质是高并发下的库存扣减,答题主线落在「同一份库存被多个请求同时读改写」上。单机可以用 synchronized 或 ReentrantLock 把「查库存—判断—扣减」包成临界区;多机就得上分布式锁,或者把扣减下沉到存储层:数据库用一条带条件的 UPDATE(update stock set left = left - 1 where id = ? and left > 0)靠行锁保证原子性,影响行数为 0 就是没抢到;缓存侧用 Redis 的 DECR 或 Lua 脚本把「判断 + 扣减」变成一次原子操作,再异步落库。再往上补三件事:用消息队列削峰、按场次分片打散热点、靠唯一索引或令牌做一人一单的幂等,最后给热点票档做预扣库存与限流,避免所有流量砸在同一行上。

大表查询越来越慢怎么优化:先定位再优化,别一上来就分库分表。第一步打开慢查询日志、用 EXPLAIN 看执行计划,确认是全表扫描、回表过多、还是深分页(limit 100000, 20);第二步补索引,按最左前缀设计联合索引,尽量做成覆盖索引避免回表,注意区分度低的字段放前面没意义;第三步改查询本身,把深分页换成基于游标的翻页(where id > 上次最大 id limit 20)、把大事务拆小、把非实时统计挪到离线。数据量确实压不住再上结构手段:按时间或业务键做分区、冷热分离把历史数据归档到冷库、读写分离把报表查询引到从库、必要时分表。缓存是最后一层,但要讲清一致性代价(先更新库再删缓存 + 过期兜底)。

能 ping 通却连不上服务怎么排查:这个题考的是分层排查意识。ping 走 ICMP,能通只说明网络层可达,连不上多半卡在传输层或应用层。按顺序看:telnet ip port 或 nc -vz 确认端口是否可达;服务端 ss -lntp 看端口有没有真的在监听、绑的是 0.0.0.0 还是 127.0.0.1;不通就查防火墙与安全组(iptables、firewalld、云厂商安全组、中间的 LB 白名单);ss -s/netstat 看连接数是否打满、backlog 溢出或大量 TIME_WAIT;服务端进程是否假死、线程池是否耗尽、连接池上限是否被打满;客户端 DNS 解析、代理配置、以及是否连到了错误的实例。分层给出定位顺序,比报一堆可能原因更有说服力。

职业规划与业务理解怎么答:这两问看着虚,面试官实际在判断你的方向感与岗位匹配度。职业规划不要说「三年做架构师、五年做 CTO」这种空话,按「技术纵深 + 业务理解」两条线讲:一两年内把后端基本功(并发、存储、稳定性治理)打扎实,能独立负责一个模块的端到端;三到五年往系统设计走,能对一条业务链路的性能与稳定性负责。回答机器人自动化这类业务方向时,先复述你对它的理解(设备接入与协议适配、任务调度与实时性、数据回传与远程运维、异常处理与安全边界),再谈你现有技术栈能接上哪一块(高并发接入、消息与任务编排、数据服务),最后用一个具体问题收尾表示你在认真想(比如多机协同时的指令幂等与状态同步怎么做)。有追问细节比空泛表态加分。

13 分钟面试的应对与复盘:这种时长通常意味着岗位是备选、或者面试官在赶指标,不必把结果归因到自身水平。能做的有三点:一是自我介绍控制在 60 秒内,直接给出「我做过的、与岗位最相关的一件事」,别铺陈教育经历;二是每个问题先给结论再给一两条理由,让面试官能在短时间内抓到你的水平,答不出就明说了解到什么程度、思路是什么;三是把反问准备好,问团队在做哪块业务、这个岗位进来先接什么,既能拿到信息也能体现意向。回到复习层面,这场暴露的都是高频八股(超卖、慢查询、网络排查),按上面三条各写一段 200 字的口述稿,练到能不看稿说顺,下一场同类岗位就能稳住。