`
42087743
  • 浏览: 233782 次
  • 性别: Icon_minigender_1
  • 来自: 合肥&上海
社区版块
存档分类
最新评论

内存泄露

阅读更多
javaVM虽然有自己的垃圾回收器,可以回收大部分的内存空间,但还是有部分的内存空间是回收不了的.

内存中饿对象分为3种:
1.无用的对象,但是不可达,这是C或C++中的内存泄露;
2.无用的对象,也可达,这就是java中的内存泄露;
3.有用的对象.这就不是内存泄露了.

为什么java中也会存在内存泄露呢,什么情况下会出现这种情况,下面是一个比较普遍的例子:
List list = new ArrayList();
		for (int i = 0; i < 1000; i++) {
			list.add(i);
		}
		for (int i = 0; i < 1000; i++) {
			list.remove(i);
		}

当集合或者数组(本质上是栈)加入了很多数据后,又将这些数据删除,集合或数组仍然会保留着一些信息来记录它们,所以导致GC不会把它们删除,这就是导致内存泄露的原因.

解决方案就是:
list.get[i]=null

一般内存泄露是很难发现的,所以它很可能长久地存在于系统中,而没有被发现,但可以通过工具来发现它,比如bea的JRocket,IBM的Purify等等,都不错.
分享到:
评论

相关推荐

    Android webview 内存泄露的解决方法

    Android webview 内存泄露的解决方法 最近在activity嵌套webview显示大量图文发现APP内存一直在涨,没法释放内存,查了很多资料,大概是webview的一个BUG,引用了activity导致内存泄漏,所以就尝试传递...

    Windows内存泄漏排查工具

    在Windows操作系统中,内存泄漏是一种常见的性能问题,它会导致系统资源逐渐消耗殆尽,影响程序的稳定性和整体系统的运行效率。为了解决这个问题,开发者通常会使用专门的内存泄漏检测工具。本文将详细介绍两个用于...

    Iframe内存泄露分析

    Iframe 内存泄露分析是指在使用 Iframe 时,由于互相引用、闭包、跨页面泄漏、伪泄漏等原因,导致浏览器内存泄漏的问题。这种问题在 Ajax 盛行以前并不是什么大问题,因为都是通过页面跳转和刷新来进行与服务端的...

    jni层内存泄漏检测工具

    JNI层内存泄漏检测工具是针对Android应用开发中的一个重要问题——JNI内存泄漏的解决方案。JNI,全称为Java Native Interface,允许Java代码与其他编程语言(如C++)交互,从而利用其性能优势。然而,由于Java和C/...

    C++内存泄露检测器

    在C++编程中,内存管理是一项关键任务,而内存泄漏是开发者经常遇到的挑战。内存泄漏指的是程序在分配了内存后未能正确释放,导致这部分内存无法再被程序使用,随着时间推移,大量的内存泄漏可能会耗尽系统资源,...

    内存泄露检查工具

    内存泄露是编程中一个常见的问题,特别是在C++和C等不自动管理内存的语言中,它会导致程序性能下降,甚至在严重时使程序崩溃。本文将详细介绍如何使用内存泄露检查工具来帮助开发者检测并修复这些问题。 内存泄露...

    OpenCV中的内存泄露问题(cvLoadImage,cvCloneImage)【转】

    OpenCV中的内存泄露问题解决方案 在使用OpenCV时,经常会遇到内存泄露的问题,特别是在使用cvLoadImage和cvCloneImage函数时。这些函数的使用不当将导致内存泄露,影响程序的稳定性和性能。本文将详细介绍这两个...

    linux下检查内存泄漏的工具+例子

    在Linux系统中,内存泄漏是程序开发中一个严重的问题,会导致系统资源逐渐耗尽,影响程序的稳定性和系统的整体性能。解决这个问题的关键在于能够有效地检测并定位内存泄漏的位置。本资料包提供了一种常用且强大的...

    JProfiler对应用服务器内存泄漏问题诊断解决方案.docx

    JProfiler对应用服务器内存泄漏问题诊断解决方案 一、概述 本文主要介绍如何使用 JProfiler 对应用服务器内存泄漏问题进行诊断和解决。内存泄漏是指应用服务器中的一种常见问题,表现为内存长期不合理占用,内存...

    electron-vue开发环境内存泄漏问题汇总.docx

    Electron-Vue 开发环境内存泄漏问题汇总 本文主要介绍了 Electron-Vue 开发环境中内存泄漏问题的解决方案。 Electron-Vue 是一个基于 Electron 和 Vue.js 的开发框架,用于构建桌面应用程序。然而,在开发环境中,...

    GDB查找内存泄露

    后台程序中经常会存在一部分内存泄露,但是不能很好的定位造成内存泄露的代码,并进行修改,内存泄露不进行修改就会造成程序运行时占用的内存不断升高,逐渐的导致系统的不稳定,现将前一段时间通过GDB调试工具查找内存...

    SWT内存泄露解决办法

    然而,SWT应用程序可能会遇到内存泄露问题,这会导致程序运行缓慢,甚至崩溃。本文将深入探讨SWT内存泄露的原因、如何检测以及解决方法。 内存泄露通常发生在程序不再需要对象时,但这些对象仍然保留在内存中,无法...

    vld2.5 C++内存泄露检测工具

    关键词:内存泄露,visual leak detector,vld VLD是一款用于VisualC++的免费内存泄漏检查工具。可以在codeproject.com网站上找到,相比其它的内存泄漏哦给你根据,他在检查内存泄漏的同事,还具有如下特点: 1) ...

    tcmalloc排查内存泄漏的方法

    tcmalloc排查内存泄漏的方法 tcmalloc是一种高性能的内存管理库,它可以帮助开发者检测和解决内存泄漏问题。在本文中,我们将介绍如何使用tcmalloc来排查内存泄漏的方法。 安装gperftools 首先,我们需要安装...

    linux 内核 内存泄露检测

    linux 内核 内存泄露检测 linux 内核 内存泄露检测 linux 内核 内存泄露检测 linux 内核 内存泄露检测 linux 内核 内存泄露检测 linux 内核 内存泄露检测 linux 内核 内存泄露检测

    Tomcat内存泄露问题排查

    借助第三方工具进行内存分析,找出导致内存泄露的具体代码段。 MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的Java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。...

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

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

    几个内存泄漏的例子

    几个内存泄漏的例子  new和delete要成对使用  new和delete要匹配 经常看到一些C++方面的书籍中这样提及到内存泄漏问题,这样的说法的意思是比较明白,但对于初学C++程序员还是很难掌握,所以下面举几个反面的...

    Android处理内存泄漏的代码例子

    在Android开发中,内存泄漏是一个严重的问题,它会导致应用程序占用过多内存,影响性能甚至导致应用崩溃。本示例代码着重展示了如何避免Android应用中的内存泄漏,主要包括五个关键方面:关闭游标、重用适配器、回收...

    Linux 内存泄露查找

    linux 内存泄露排查文档。 介绍mtrace的使用。根据实际问题介绍如果定位问题。

Global site tag (gtag.js) - Google Analytics