阿里(天猫事业部)Java开发工程师 二面

#JAVA##JAVA面经##JAVA内推#

1. @EnableAutoConfiguration 注解具体做了什么?

思路

讲清楚三件事:去哪里读配置、按什么条件加载、最终帮我们做什么。突出 Spring Boot 自动配置的核心机制。

回答示例

面试官您好,这个注解是 Spring Boot 实现自动配置的核心。

它主要做三件事:

第一,去 META-INF 下面读所有预先写好的自动配置类,比如数据源、Redis、MyBatis 这些;

第二,根据你项目里引了什么依赖,来判断哪些配置需要生效;

第三,把符合条件的 Bean 自动注入到 Spring 容器里,我们不用再手动写 XML 或者配置类。

简单说,就是帮我们省去大量重复配置,实现约定大于配置。

2. MyBatis 中 #{} 和 ${} 最核心的区别是什么?

思路

抓住两点:是否预编译、是否防 SQL 注入。一句话点透本质。

回答示例

最核心的区别就两点:

#{} 是预编译的,安全,防 SQL 注入;

${} 是直接字符串拼接,不安全,有注入风险。

平时传参数一定要用 #{},只有动态表名、动态列名这种必须拼接的时候,才不得已用 ${},而且一定要做参数校验。

3. 项目里 @Transaction 注解失效过吗?举个实际例子。

思路

用最经典、最真实的场景:同类内部方法调用,讲清楚为什么失效、怎么解决。

回答示例

失效过,我遇到最典型的就是同一个类里方法互相调用导致事务不生效

比如我在 A 方法里调本类的 B 方法,B 上加了事务,抛异常也不回滚。

原因就是 Spring 事务是基于动态代理的,必须走代理对象调用事务方法才管用,内部直接调用不走代理,所以事务就失效了。

我后来是把 B 方法抽到另一个 Service 里,注入进来调用,事务就正常了。

4. 你用 Redis 存了什么类型的数据?

思路

按业务场景说,结构对应场景,显得你真用过,不是背八股。

回答示例

我在项目里这几种最常用:

  • String:存用户信息、商品详情、库存数量、接口限流计数;
  • Hash:存对象,比如订单信息、用户配置,方便单独改某个字段;
  • List:做简单队列,比如日志、通知;
  • ZSet:用来做延迟队列,比如订单超时未支付自动取消;
  • Set:存去重数据,比如用户权限、已读消息。

基本都是根据业务场景选对应结构。

5. 什么是缓存穿透?

思路

讲清楚:查不存在的数据,一直打库。给方案。

回答示例

缓存穿透就是:有人查一个缓存和数据库里都不存在的数据

缓存里没有,就每次都去查数据库,高并发下很容易把库打挂。

比如恶意请求一堆不存在的商品 ID。

解决一般用缓存空值,或者布隆过滤器过滤掉无效请求。

6. 什么是缓存击穿?

思路

突出:一个热点 Key 过期,大量请求瞬间打库。

回答示例

缓存击穿是指:,这时候一瞬间大量请求进来,缓存没命中,全部打

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论
强烈推荐!这个笔记写得很清晰 http://github.com/AccumulateMore/CV
1 回复 分享
发布于 昨天 09:55 广东
很经典的八股文呀
点赞 回复 分享
发布于 03-18 16:11 四川

相关推荐

昨天 14:28
已编辑
浙江大学 Java
公司:阿里巴巴集团部门:淘天场景金融技术部地点:杭州岗位要求【学历要求】全日制本科及以上学历【专业要求】计算机/软件工程/人工智能/大数据/大模型/数学等相关专业【专业技能】编程基础:具备扎实的工程实践能力和良好的代码规范意识,至少熟练掌握一种主流编程语言(如Python/Java/Go/JavaScript/TypeScript等),能够熟练使用Vibe Coding来解决实际问题,有相关实习经验者优先。算法基础:有深厚的算法功底,在CV(计算机视觉)或 NLP(自然语言处理)方向有扎实的理论基础,能够理解大模型底层运行相关基础知识,有顶会或重要期刊论文发表者优先。LLM基础:对大语言模型(LLM)具备系统性认知,熟悉大模型应用开发中的关键技术,如 Prompt Engineering、RAG、Function Calling、Agent Workflow、上下文管理、记忆机制、MCP、SKILLS等。了解Zero-shot、Few-shot、CoT、ReAct等常见提示词方法。工程实践:了解AI Agent的基本原理、任务规划机制及工具调用流程,能够理解单Agent/多Agent 的典型架构设计。熟悉或使用过主流Agent应用开发框架,如LangChain、Dify、OpenClaw等,能够基于框架进行工作流编排、工具接入和应用搭建。具备一定的系统设计意识,能够结合业务场景完成Agent应用原型设计、能力扩展与工程落地。【核心素质】技术好奇心:有很强的技术好奇心,具备快速啃透前沿论文(Paper)的能力,并能将理论知识转化为工程代码,如有自己独立完成的小项目(开源项目或个人 Demo)验者优先。简历可发送邮箱: **********
点赞 评论 收藏
分享
- 部门介绍阿里云消息团队有着20年消息领域的技术底蕴,持续服务阿里集团业务和阿里云客户,是全球领先的消息技术团队。团队目前负责阿里云上多款云产品,包括MQ云服务(RocketMQ/RabbitMQ/MNS)、物联网消息平台(MQTT)、事件流平台(Kafka、Confluent、SQL流计算)、数据集成(EventBridge)和分析平台(EventHouse)的研发。目前产品线已服务十万级客户规模,十亿级市场规模,是国内乃至全球规模最大的云消息、事件流服务之一。除此以外,阿里云消息团队也是Apache RocketMQ的创始团队,2016年将消息技术内核RocketMQ捐赠给Apache基金会,持续在社区主导Apache RocketMQ的技术架构演进和日常运营。目前Apache RocketMQ已经成为消息领域的事实标准,有十多家云厂商提供RocketMQ商业化服务,在行业也屡获殊荣。团队在消息领域积累了数十篇专利,3篇国际顶会论文,多次深度参与信通院消息标准的编写和制定。目前AI时代已来,我们正在引领新一代AI MQ技术,为AI Agent提供事件驱动架构基础设施和实时AI Context服务,覆盖AI原生应用架构和一站式Agentic数据分析的场景,欢迎师弟师妹们加入。base:杭州,北京- 岗位要求1. 扎实的计算机专业基础,精通操作系统、数据库系统、网络等底层原理2. 至少熟悉一种编程语言,如Java、C++、Python、Go3. 熟悉分布式计算、存储相关理论,有实践经验更佳4. 有技术热情,关注开源技术,熟悉某个主流开源项目的架构和源码5. 熟悉AI工程技术,了解大模型底层原理,熟悉AI Agent开发技能,包括ReAct、RAG、Context Engineering6. 熟悉AI编程工具的使用,如cursor、claude code、qoder等招聘对象:2026年11月-2027年10月毕业,愿意在毕业后加入阿里云。计算机、数学、电子、通信等相关专业。大家有兴趣可以私聊,简历也可以直接发到邮箱,有空的时候可帮忙简历辅导
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务