袋鼠云 Java 一面面经

袋鼠云 · 软件开发工程师 · 一面 · 海南 · 2026-05

《面试题目》

  1. 自我介绍
  2. 项目拷打
  3. 讲讲项目里的动态路由,有什么应用场景
  4. 讲讲项目里的频繁实例化改成单例模式的思路
  5. 你说你是用火焰图排查的,为什么要用火焰图
  6. 这个实例对象真的是问题而不是特殊设计吗?你怎么确认
  7. 优化前后有数据检验吗?
  8. 你的修改和团队讨论并上线生产了吗?
  9. 线程池的主要参数
  10. 线程池的拒绝策略
  11. 线程池的线程什么时候初始化?
  12. Spring的自动装配
  13. 讲讲 NameNode 和 DataNode
  14. SecondaryNameNode 是做什么的
  15. [牛泪][牛泪][牛泪]已老实。。

《参考解析》

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

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

  3. 算法题解析:常用算法思路:动态规划(状态转移方程,自底向上);BFS/DFS(图遍历,BFS找最短路,DFS回溯);双指针(有序数组去重/两数之和);滑动窗口(子串/子数组问题);二分查找(有序或单调性)。时间复杂度分析:关注最坏情况和平均情况。