25年9月阿里Java实习(技术一面、技术二面及HR面)

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

一面(20分钟)

  1. 请进行自我介绍

面试官好!我是XX大学计算机专业大四学生,主攻Java后端开发。技术栈聚焦Spring Boot/Cloud生态,熟练掌握MySQL、Redis、RabbitMQ等中间件。独立开发过校园二手交易平台(日均50+订单),获蓝桥杯Java组省一。我注重工程规范:项目采用Git协作、JUnit单元测试覆盖率超70%。非常认同贵司‘用技术创造真实价值’的理念,渴望在实战中成长,为团队贡献代码与思考。

  1. 请介绍你的项目,并说明开发初衷与价值
  • 情境:校园二手交易依赖微信群,存在信息杂乱、信任缺失问题
  • 任务:设计轻量级平台,实现商品发布、实名认证、在线沟通
  • 行动
    • 后端:Spring Boot + MyBatis-Plus,Redis缓存商品热点数据(QPS提升3倍)
    • 异步:RabbitMQ解耦通知模块,避免主流程阻塞
    • 安全:JWT+Redis实现登录态,敏感操作加短信验证
  • 价值:3个月覆盖2000+用户,交易纠纷率下降60%;项目获校级创新奖,代码开源获80+ Star
  1. 你通过哪些渠道学习技术?具体学习方法是怎样的?

“三步闭环法:
精准输入:官方文档优先(如Spring Guides),搭配《MySQL是怎样运行的》等经典书籍;
刻意实践:学完事务隔离级别后,用JMeter压测不同级别下的幻读现象,输出对比报告;
输出沉淀:在个人博客写技术复盘(如《RabbitMQ消息可靠性实战踩坑记》),倒逼深度思考。
近期正通过贡献Apache Dubbo文档翻译参与开源,理解工业级代码规范。”

  1. 请分享校园经历,例如是否参与社团或学生工作

担任ACM协会技术部长期间:

  • 主导‘算法夜校’活动,将晦涩的DP问题拆解为生活案例(如背包问题→旅行打包),参与率提升40%;
  • 协调5人团队筹备校赛,用TAPD管理任务,提前2天完成平台部署。
    这段经历让我学会:技术表达要‘用户视角’,协作需‘目标对齐+过程透明’。
  1. 请谈谈你的职业规划

短期(实习期):扎根业务,吃透团队技术栈,争取独立负责一个模块迭代;
中期(1-2年):成为能设计高可用接口的后端工程师,深入分布式系统;
长期:向‘技术+业务’双驱动发展。贵司在[提及公司具体业务,如:电商履约链路]的深耕,正是我向往的成长土壤。

  1. 你对我们公司有哪些了解?

我持续关注贵司:

  • 技术层面:开源项目如Nacos在微服务注册发现中的实践,与我项目技术选型高度契合;
  • 业务层面:[举例公司近期动态,如:XX业务上线智能调度系统],体现技术驱动业务创新;
  • 文化层面:‘工程师文化’‘技术沙龙常态化’的氛围,与我追求持续成长的价值观同频。
  1. 你有什么问题希望向我们了解?

① 团队当前最希望实习生补位的技术环节是什么?
② 贵司对新人的‘技术成长路径’是否有体系化设计(如导师制、代码Review机制)?

二面(33分钟)

开场:自我介绍同上

技术面试官提问

  1. 请阐述 Spring 中 Bean 的完整生命周期

以AnnotationConfigApplicationContext为例:
1️⃣ 实例化(InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation)
2️⃣ 属性注入(@Autowired处理)
3️⃣ Aware接口回调(BeanNameAware等)
4️⃣ 关键扩展点:BeanPostProcessor.postProcessBeforeInitialization → @PostConstruct → InitializingBean.afterPropertiesSet → init-method
5️⃣ AOP代理生成(若需)
6️⃣ BeanPostProcessor.postProcessAfterInitialization
7️⃣ 使用中...
8️⃣ 销毁:@PreDestroy → DisposableBean.destroy → destroy-method
项目应用:在日志组件中,通过BeanPostProcessor在初始化前后注入TraceID,实现全链路追踪。

  1. Spring 支持哪些 Bean 注入方式?项目中实际应用了哪些? 注入方式共4类:
  • 构造器注入:强依赖首选(如Service依赖Repository),保障不可变性与单元测试便利性
  • Setter注入:可选依赖(如配置开关)
  • 字段注入@Autowired直接标注字段,简洁但不利于测试与继承
  • 方法注入@Bean方法参数注入
    项目实践
  • 所有Service层采用构造器注入(IDEA自动生成,避免NPE)
  • Controller层用字段注入(减少样板代码,因Controller本身由Spring管理)
  • 配置类中用@Bean方法注入第三方组件(如RestTemplate)
    选型逻辑:遵循Spring官方推荐——构造器注入保障依赖完整性,提升代码健壮性。
  1. 对比分析 @Autowired、@Resource 等注解在 Bean 注入中的优劣与适用场景
维度 @Autowired (Spring) @Resource (JSR-250)
匹配规则 byType → @Qualifier指定byName byName优先(name属性)→ byType
来源 Spring框架 Java标准(javax.annotation)
适用场景 纯Spring生态项目 整合Dubbo等非Spring Bean时更稳妥
灵活性 需配合@Qualifier解决歧义 直接指定name,语义清晰

项目决策:团队规范统一使用@Autowired + 构造器注入。原因:
① 避免字段注入导致的循环依赖隐患;
② 构造器参数即依赖契约,提升可测试性;
③ Spring Boot 2.6+默认禁止循环依赖,倒逼设计优化。”

  1. 请说明 Spring 中 Bean 的作用域类型及其典型应用场景

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

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

全部评论
27届实习机会或看我住业 https://careers.pddglobalhr.com/campus/intern?t=4OmKPVeX9a
点赞 回复 分享
发布于 03-11 13:55 上海
接好运
点赞 回复 分享
发布于 03-07 12:56 广东
专栏目录https://www.nowcoder.com/share/jump/1772859327707
点赞 回复 分享
发布于 03-07 12:56 广东
本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏。
点赞 回复 分享
发布于 03-06 15:52 广东

相关推荐

02-25 02:18
已编辑
广州商学院 Java
1~5.个人信息,实习等。6. 简单说说MySQL的索引?7. 为什么需要引入索引?8. 有10个查询SQL,是否可以创建10个索引?9. 了解最左匹配原则吗?联合索引ABC,查询where A and B会命中索引吗?10. 联合索引ABC,查询where B and C会命中索引吗?11. 做过索引相关的优化吗?如何判断写的SQL好坏?12. 用过explain吗?其作用是什么?核心关注哪些字段?13. 遇到过回表吗?回表是什么?如何避免回表?14. 做过分页吗?OFFSET+LIMIT跨1万页和跨1页有区别吗?15. 若分页按姓名排序(非ID),如何解决深度分页问题?16. Java线程池有几种创建方式?17. 手动创建线程池的核心参数有哪些?18. 调用并发量为1的API(如短信API),线程池核心参数该如何设置?19. 核心线程数设为1时,阻塞队列数该如何设置?20. 若线程数很大,如何保证API同一时刻仅被调用一次(抛开线程池)?21. 本地加锁的代码在多实例部署时,还能控制API调用并发吗?22. 操作Redis缓存和数据库时,先删缓存还是先提交事务?有哪些解决方案?23. 核心业务服务与统计服务通过MQ交互,统计库无数据该如何排查?MQ挂了时,应用层该如何兜底保证消息不丢失?24. 候选人主动提问:后续面试流程是什么?面试官对自己的回答有何建议?0224下午一面,0224晚上7点二面。
查看36道真题和解析
点赞 评论 收藏
分享
评论
5
7
分享

创作者周榜

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