`
bruce008
  • 浏览: 172198 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java 中的常见的内存溢出

    博客分类:
  • J2SE
阅读更多

1,   最常见的Java 中的内存溢出就是 一下静态的容器  HashMap,  List 之类的容器了。 由于是静态的的容器它们的生命周期就是创建之后就跟jvm 相同。 因此它们里面的object 们也会被他们hold 住,  即使别的地方都已经用完了, 如果没有显示的从他们这移除, 那些object 也会永远存在。    如果是这种容器的作用是作为cache 的话 还是用 memcache 来完成吧。   绝大多数的cache 容器是使用 SoftReference 来hold 住 target object的。 SoftReference refer 的对象如果在别的地方没有被引用了,  在GC 做 full collection 的时候会回收这些对象的。

 

 

2, 是一样事件处理的地方 我们会add Some listener 。 通常我们都是只记得加 不记得 un register。 这样在加的地方 对象用完了 但是 被监听的对象 还在的话。 listen 的对象也不会被 释放。 这个情况在dotNet 下面, 特别当初做 win form的时候很郁闷啊,  一个winform 程序在那个时候 占个 1,200m 内存。 在 05,06   512m内存都是大的了。 最后发现很多控件没有释放掉就是这种原因,  搞得还骂微软,  到了 java 世界也有这个问题。  好像现在dotNet 都是在处理这种delegate 的时候用到  softreference 了。  到底是用到 soft reference  还是 weak reference 还得向 一哥们求证下。 ( 特此记录下 )  

分享到:
评论

相关推荐

    完美解决java读取excel内存溢出问题.rar

    通过这些方法,我们可以有效地处理大Excel文件,避免Java内存溢出。在实践中,可能需要结合多种策略,根据具体项目需求进行调整和优化。 示例代码: ```java import org.apache.poi.xssf.streaming.SXSSFWorkbook;...

    JAVA内存溢出问题总结

    JAVA内存溢出问题总结 JAVA 内存溢出问题是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用的内存大于虚拟机能提供的最大内存。内存溢出问题可以从容器和程序类两个方面进行排查,容器问题...

    JAVA内存溢出

    JAVA内存溢出 JAVA中OutOfMemoryError(内存溢出)的三种情况及解决办法 Java中的OutOfMemoryError(内存溢出)是一种常见的错误,本文将详细介绍OutOfMemoryError的三种情况及其解决方法。 首先,我们需要了解...

    java内存泄露、溢出检查方法和工具

    Java内存管理是开发Java应用程序时的关键环节,内存泄露和溢出问题可能导致系统性能下降,甚至导致服务崩溃。本文将深入探讨如何检测和分析Java内存泄露与溢出,并介绍一种常用的工具——Memory Analyzer(MAT)。 ...

    Java 内存溢出解决办法

    Java内存溢出问题通常指的是程序在试图分配内存时,无法找到足够的连续内存空间而抛出的异常。在Java中,内存分为几个区域:堆(Heap)、栈(Stack)、方法区(Method Area,Java 8后被元空间取代)以及程序计数器和...

    java解决大批量数据导出Excel产生内存溢出的方案

    在Java开发中,当面临大批量数据导出到Excel文件时,可能会遇到内存溢出的问题。这是因为Excel文件格式本身的设计,以及Java默认处理大数据的方式,可能导致内存占用过高,尤其是在一次性加载大量数据到内存中进行...

    JAVA内存溢出详解.doc

    Java内存溢出(Out Of Memory,OOM)是Java应用程序运行时常见的问题,它通常发生在程序对内存需求超过了Java虚拟机(JVM)所能提供的可用内存时。本文将深入探讨Java内存溢出的原因、表现以及如何解决。 1. **Java...

    java常见的几种内存溢出和解决方案.docx

    Java 中的内存溢出是一种常见的错误,可能会导致程序崩溃或hang死。了解 Java 中的内存溢出原因和解决方案是非常重要的。本文将介绍 Java 中的几种常见的内存溢出和解决方案。 1.JVM Heap(堆)溢出: JVM Heap...

    内存泄漏与内存溢出

    在软件开发领域,尤其是涉及到数据库应用的场景下,内存泄漏(Memory Leak)和内存溢出(Out of Memory,简称OOM)是两个常见的问题,它们直接影响到程序的性能、稳定性和可扩展性。以下是对这两个概念及其相关知识...

    kettle内存溢出(Java heap space)以及解决方法.docx

    在IT领域,尤其是在大数据处理和...同时,理解数据处理的瓶颈,选择合适的硬件配置和软件配置,都是预防和解决Kettle内存溢出问题的重要手段。在实际操作中,可能需要反复试验和调整,找到最适合当前环境和任务的配置。

    内存溢出配置,内存溢出配置

    内存溢出配置是IT行业中,尤其是在Java应用开发与运维领域中的一个重要话题,它涉及到系统资源管理、性能调优以及故障排查等多个方面。标题与描述中重复提到“内存溢出配置”,这表明了对这一主题的关注与重视。接...

    Java内存溢出解决办法

    Java内存溢出问题,全称为Java OutOfMemoryError,是Java开发者经常遇到的运行时异常。内存溢出通常发生在程序运行过程中,系统无法为运行的应用程序分配足够的内存资源,导致程序无法正常执行。理解并解决Java内存...

    java 内存溢出分析工具 HeapAnalyzer

    Java内存溢出(Out of Memory,OOM)是Java应用程序中常见的问题,会导致程序崩溃或性能急剧下降。HeapAnalyzer是一款强大的工具,专为分析Java应用程序的内存状况,特别是针对内存溢出问题进行诊断。本文将详细介绍...

    关于(java heap space)内存溢出的解决办法

    在Java编程中,"java heap space"内存溢出是一个常见的问题,它通常发生在应用程序尝试分配超过JVM堆内存限制的对象时。这个问题对于任何Java开发者来说都至关重要,因为如果不妥善处理,可能会导致程序崩溃。以下是...

    java IBM websphere 内存溢出 javacore deapdump CPU内存分析工具

    在处理Java内存溢出问题时,除了使用上述工具外,还需要理解以下几个关键概念: 1. 堆内存:Java对象主要存储在堆内存中,过大或过多的对象可能导致堆溢出。 2. 非堆内存:包括JVM自身使用的内存(如方法区、元空间...

    内存溢出解决

    #### 解决Java内存溢出的方法 ##### 1. **理解内存结构** 在深入探讨解决方案之前,首先需要了解Java虚拟机(JVM)的内存布局: - **堆内存**:存放对象实例和数组。 - **栈内存**:线程私有的,用于存储局部变量...

    java excel导出tomcat内存溢出处理方法

    在Java应用开发过程中,特别是在进行大量数据处理如Excel导出等操作时,经常会遇到Tomcat服务器内存溢出的问题。内存溢出是指程序运行时申请的内存超过了系统能提供的可用内存,导致程序无法继续执行的一种异常状态...

    java内存溢出解决方案

    Java内存溢出问题通常指的是Java应用程序在运行过程中由于内存分配不当或使用过度导致JVM无法分配更多的内存,从而抛出`java.lang.OutOfMemoryError`异常。本文将深入探讨Java内存溢出的不同类型及其解决方案。 1. ...

    如何避免JDBC引起的内存溢出情况

    在日常的软件开发过程中,特别是在处理大量数据时,使用Java数据库连接(JDBC)进行数据库操作是非常常见的。然而,在处理大数据集时,如果不注意细节,很容易遇到内存溢出的问题。本文将重点讨论如何在MySQL、SQL ...

    【Java面试题】Java内存溢出

    【Java面试题】Java内存溢出

Global site tag (gtag.js) - Google Analytics