阿里虎鲸文娱 Java 后端一面

阿里巴巴 · Java后端 · 一面 · 2026-04

面试概况

面试官非常和善。题目以场景题为主,同时着重询问是否有写业务代码的实习经历。面试官强调:程序员的第一要义是要解决什么问题


题目列表

Java 基础

  1. 如何判断两个字符串是否相等?
  2. String 不可变吗,该如何使用字符串拼接?
  3. ArrayList 和 LinkedList 有什么区别?
  4. Java 为什么要设计异常机制?
  5. try-catch 应该整体包一大段,还是按逻辑拆开写?

多线程与并发

  1. 多线程主要解决什么问题?
  2. 线程池的创建参数有哪些?
  3. 有两类任务 A 和 B 并发到来,要求必须等所有 A 执行完成后才能执行 B,应该怎么设计?
  4. 线程池的线程数一般如何设置?
  5. HashMap 在多线程场景下使用要注意什么?
  6. HashMap 在只读并发场景下可以直接使用吗?
  7. 并发请求场景下,如何统计下游接口的失败率?如何在尽量不影响原接口性能的前提下实现并发 counter 统计?

编程思维

  1. 递归和循环都能实现时,一般更倾向于用哪种?为什么?

网络与分布式

  1. Session 和 Cookie 有什么区别?
  2. 分布式系统中,用户信息通常如何存储?

设计原则与设计模式

  1. 常见的程序设计原则有哪些?
  2. 什么是设计模式?为什么要学习设计模式?
  3. 什么是策略模式?适用于哪些场景?
  4. 代理模式和装饰者模式有什么区别?
  5. 实现了一个新的设计模式后,给别人讲时一般应该讲哪些内容?

数据库

  1. 数据库索引的作用是什么?
  2. 已经建了索引,哪些情况下会导致索引失效?
  3. 创建联合索引时需要注意什么?

场景与软技能

  1. 需求做到一半发生变化时,应该如何应对?
  2. 产品经理给了一个不太好的方案你该怎么办?
  3. 领导临时给你一个完成一半的系统,后续工作全权交给你,你会怎么做?
  4. 线上系统出现故障,用户无法使用,你该怎么处理?
  5. 有什么感受到挫折的事情?
  6. 有什么感受到自豪的事情?

反问

  1. 反问环节(内容未记录)