嘉为python后端实习面经(深圳)

某互联网公司 · Python开发工程师 · 广东 · 2026-06

《面试题目》

  1. 简单介绍自己
  2. 简单介绍项目(python),自己的职责
  3. 这个项目中一次请求的完整链路
  4. async什么时候用,有没有专门优化
  5. 数据库查询变慢了,排查链路是什么
  6. 有没有用过压测工具测接口(什么名字忘记了)
  7. 调用llm接口失败的重试机制
  8. 调用第三方接口,如果没有响应,会不会继续扣费
  9. 项目最难忘的点是什么?
  10. (go项目)简单介绍项目
  11. 怎么做的缓存
  12. 怎么保证并发安全(其实想问sync.map)
  13. 怎么做的接口请求量优化
  14. (java项目)你做的jwt和springsecurity怎么结合?你做的filter作用是什么。
  15. 如何实现全局异常,机制
  16. 调用第三方接口失败怎么归并到全局异常
  17. 线上报500怎么排查
  18. 聊天部分有没有用websocket

八股文:

  1. 数组和链表区别
  2. 为什么数组可以快速查询
  3. 为什么哈希表可以O1查询
  4. 哈希表最坏为什么是On
  5. 哈希冲突怎么解决
  6. 进程和线程区别
  7. 线程共享什么资源
  8. 用户态和内核态区别
  9. 什么是僵尸进程和孤儿进程
  10. linux使用情况
  11. udp和tcp区别
  12. 项目有没有用websocket(同上面的java项目题)
  13. 有没有想反问的
  14. 公司业务
  15. 开发用的框架
  16. 公司平时是否vibe coding
  17. 考勤
  18. 面试官人很好,会提醒回答方向,太难的题也会跳过问别的方向。最后他说面试过程还不错,送我出了电梯口。公司效率挺高的,下午三点面到三点五十五,说下午会给出面试结果。希望能过。

《参考解析》

  1. 计算机网络:TCP(传输控制协议)是面向连接、可靠的传输协议,提供流量控制和拥塞控制;UDP(用户数据报协议)是无连接、不可靠但速度更快的协议。TCP通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手断开(FIN→ACK→FIN→ACK)。

  2. Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。

  3. Spring框架:Spring IoC容器管理Bean生命周期,核心是依赖注入(DI)。AOP面向切面编程通过动态代理(JDK/CGLIB)实现横切关注点(日志/事务/权限)。Spring事务传播行为:REQUIRED(加入现有或新建)、REQUIRES_NEW(挂起当前,新建)、NESTED(嵌套事务)等。

  4. Java并发:Java并发:synchronized关键字(偏向锁→轻量级锁→重量级锁升级);ReentrantLock(可重入、可中断、公平锁);volatile(内存可见性+禁止指令重排,不保证原子性);CAS(Compare-And-Swap,无锁乐观并发);ThreadLocal(线程本地变量,WeakReference,注意内存泄漏)。线程池核心参数:corePoolSize/maximumPoolSize/keepAliveTime/workQueue/handler。