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
点赞 回复 分享
发布于 昨天 13:55 上海
接好运
点赞 回复 分享
发布于 03-07 12:56 广东
专栏目录https://www.nowcoder.com/share/jump/1772859327707
点赞 回复 分享
发布于 03-07 12:56 广东
本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏。
点赞 回复 分享
发布于 03-06 15:52 广东

相关推荐

点赞 评论 收藏
分享
高标智能 后端开发面经1. 自我介绍2. 将java文件编译成class字节码加载到JVM,会先被解析到哪个区域3. 频繁Minor GC的排查与解决4. JVM内存区域中哪些是私有,哪些是共享5. 线程之间的通信方式,如何保证线程安全?6. 自定义类实例化时,会不会生成它父类 Object 的实例?为什么?7. Spring IOC 三级缓存是否完全解决了循环依赖问题?举例说明。8. Spring IOC 依赖注入的方式有哪些?————————————————————【我们是谁】👉二轮车电控的业界"大佬",市占率50%以上!👉热门出海赛道,ebike-三电系统新势力!----------🌍国际化平台,格局打开🚀全方位培养,火箭晋升【岗位需求】结构、仿真、电机、软件、硬件、测试、营销、制造等【岗位地点】总部位于东莞松山湖,工作地点遍布全国及海外【薪酬福利】💡五险一金、周末双休、带薪年假、报到礼金、食宿安排、节假日礼品等~💡薪酬待遇:研发类硕士21~35万/年,本科12-21万/年;非研发12-21万/年;派驻海外岗位额外补贴1.4万+/月!【内推链接】https://kjgb.zhiye.com/campus/jobs?shareId=cd54c7a7-9898-4abb-bd5e-a37952f5e425&shareSource=2&qr=1&memory=%7B%7D&silence=1【内推码】EVKM89内推投递,简历优先筛选,面试流程加快!
点赞 评论 收藏
分享
评论
5
7
分享

创作者周榜

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