当前位置: 首页 > news >正文

Bean 会被 JVM 回收吗?

文章目录

      • 核心结论:**会,但前提是它必须变得“不可达”。**
      • 1. Singleton Bean(单例):通常与容器同生死
      • 2. Prototype Bean(多例):管生不管死
      • 3. 决定 Bean 被回收的具体条件
      • 总结对照表

核心结论:会,但前提是它必须变得“不可达”。

Bean 本质上就是堆内存里的一个普通的 Java 对象。JVM 的垃圾回收(GC)逻辑对它依然生效,但 Spring 容器(ApplicationContext)的存在直接干预了它的“生命长度”。


1. Singleton Bean(单例):通常与容器同生死

对于单例 Bean,JVM 回收它的阻碍在于Spring 容器本身

  • 强引用的拉扯:Spring 容器内部维护着一个单例池(通常是一个ConcurrentHashMap),用来存放所有的单例 Bean 实例。
  • GC 路径:在 JVM 的 GC 算法(如可达性分析)中,ApplicationContext通常作为一个 GC Root 或者被 GC Root 引用。只要容器还在运行,它就一直“拉着”这些 Bean 的引用。
  • 回收时机只有当容器被关闭(Close)时,容器才会清空单例池,释放对这些 Bean 的引用。此时,如果没有其他业务代码(比如静态变量)还拽着这个 Bean,它才会变成“垃圾”,在下一次 GC 时被清理。

2. Prototype Bean(多例):管生不管死

多例 Bean 的待遇和单例完全不同:

  • Spring 的放手:Spring 容器只负责多例 Bean 的创建、初始化和装配。一旦它把这个对象交到你手中,它就不再持有这个对象的任何引用了。
  • 回收时机:它就像你直接new出来的普通对象一样。一旦你的业务逻辑执行完毕,不再有任何变量指向它,它就会立即变成不可达状态,静候 JVM 的 GC 回收。

3. 决定 Bean 被回收的具体条件

一个 Spring Bean 要想被 JVM 回收,必须同时满足以下两个“断开”:

  1. Spring 容器断开引用
  • 对于单例:必须销毁容器或手动从容器中剔除 Bean。
  • 对于多例:创建完成即已断开。
  1. 业务代码断开引用
  • 如果你在代码里把一个 Bean 赋值给了一个静态变量(Static),或者放进了一个长生命周期的集合里,那么即使 Spring 容器关了,JVM 依然无法回收它。这就是常见的内存泄漏来源。

总结对照表

Bean 作用域Spring 容器是否持有引用谁决定它何时被回收?
Singleton是(存放在单例缓存池中)Spring 容器。容器关闭,引用才释放。
Prototype否(创建完就撒手)你的代码。你不用了,它就被回收。

一句话总结:
Bean 只是披着 Spring 外壳的对象,能不能回收,全看JVM 的引用链上还有没有它的位置。单例 Bean 就像是住进了“养老院”(容器),只要养老院不倒闭,它就一直活着。

既然说到单例 Bean 很难被回收,你觉得如果在单例 Bean 里面定义了一个巨大的成员变量(比如一个装了几百万条数据的ArrayList),会对系统产生什么影响?

http://www.jsqmd.com/news/786338/

相关文章:

  • Animal-AI环境:连接强化学习与认知科学的3D虚拟实验室
  • 网络安全工程师超详细职业规划!零基础从入门到精通全程路线,看这一篇就够了
  • 收藏!2026年转AI大模型应用开发,正确学习顺序别踩坑(小白/程序员必看)
  • Undertow高性能Web服务器:架构解析与Java微服务实战
  • 医学影像分割:2D超图像与3D网络性能对比与选型指南
  • AI编程助手本地化提速:钩子拦截模式实现零延迟命令执行
  • Clawd-Code:基于LLM与代码库构建智能开发Agent的开源框架
  • CANN/cann-learning-hub:算子Kernel直调编程
  • 收藏必看!2026年AI内卷混战风口拆解,小白也能轻松入局大模型
  • OpenClaw本地AI智能体部署指南:从Docker到多平台实战
  • SSD主控架构到工业存储落地:天硕自研主控技术路径参照
  • 2026年国内GEO公司综合实力前五强榜单推荐:主流头部GEO服务商实力全解析 - GEO优化
  • 2026 年广州 GEO 服务商综合实力五强榜单与实战选型指南 - GEO优化
  • 容器是怎么管理 Bean 的?
  • 2026年近期大庆企业如何选择专业可靠的短视频服务伙伴? - 2026年企业推荐榜
  • 云原生性能测试平台OpenClaw Cloud:架构解析与实战部署指南
  • 第四篇:RDB与AOF持久化——宕机后数据怎么恢复?
  • 2026年最新趋势:西安外贸企业如何选择建站服务商突围海外市场? - 2026年企业推荐榜
  • 认知科学视角下的AGI评测:超越传统基准的多维能力评估框架
  • AI工作流引擎:构建可观测、可扩展的AI应用开发框架
  • 抖音直播录制神器:40+平台自动值守,永久保存精彩瞬间
  • 通用人工智能系统(GPAIS)的技术挑战与可信AI治理框架
  • AutoKG:大语言模型与远程监督驱动的自动化知识图谱构建实战
  • CANN/ascend-transformer-boost算子演示示例
  • GitHub中文界面终极指南:3步免费快速安装,告别英文困扰
  • Xbox成就解锁器完全指南:轻松解锁Xbox游戏成就的免费神器
  • CentOS 7 网卡没有 IP 地址的解决方法
  • AI系统设计实战指南:从RAG到Agentic Workflow的架构思维
  • 2026年5月更新:上海基站叠光解决方案官方推荐品牌盘点,汇珏科技集团入选 - 2026年企业推荐榜
  • CANN学习中心:SuperKernel技术综述