如何避免内存泄漏、溢出的几种常用方法 落日映苍穹つ 2022-06-08 08:46 219阅读 0赞 **尽早释放无用对象的引用。** 好的办法是使用临时变量的时候,让引用变量在退出活动域后自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。 **程序进行字符串处理时,尽量避免使用String,而应使用StringBuffer。** 因为每一个String对象都会独立占用内存一块区域,如: String str = "aaa"; String str2 = "bbb"; String str3 = str + str2; // 假如执行此次之后str , str2再不被调用,那么它们就会在内存中等待GC回收; // 假如程序中存在过多的类似情况就会出现内存错误; **尽量少用静态变量。** 因为静态变量是全局的,GC不会回收。 **避免集中创建对象尤其是大对象,如果可以的话尽量使用流操作。** JVM会突然需要大量内存,这时会触发GC优化系统内存环境; 一个案例如下: // 使用jspsmartUpload作文件上传,运行过程中经常出现java.outofMemoryError的错误, // 检查之后发现问题:组件里的代码 m_totalBytes = m_request.getContentLength(); m_binArray = new byte[m_totalBytes]; totalBytes这个变量得到的数极大,导致该数组分配了很多内存空间,而且该数组不能及时释放。 // 解决办法只能换一种更合适的办法,至少是不会引发outofMemoryError的方式解决。 **参考:**[http://bbs.xml.org.cn/blog/more.asp?name=hongrui&id=3747][http_bbs.xml.org.cn_blog_more.asp_name_hongrui_id_3747] **尽量运用对象池技术以提高系统性能。** 生命周期长的对象拥有生命周期短的对象时容易引发内存泄漏,例如大集合对象拥有大数据量的业务对象的时候,可以考虑分块进行处理,然后解决一块释放一块的策略。 **不要在经常调用的方法中创建对象,尤其是忌讳在循环中创建对象。** 可以适当的使用hashtable,vector 创建一组对象容器,然后从容器中去取那些对象,而不用每次new之后又丢弃。 **优化配置。** * 设置-Xms、-Xmx相等; * 设置NewSize、MaxNewSize相等; * 设置Heap size, PermGen space; [http_bbs.xml.org.cn_blog_more.asp_name_hongrui_id_3747]: http://bbs.xml.org.cn/blog/more.asp?name=hongrui&id=3747
相关 如何避免Java的内存泄漏问题? 在Java中,内存泄漏是一个常见的问题。以下是避免内存泄漏的一些主要方法: 1. **理解内存回收**:Java是垃圾收集语言,所有不再使用的对象最终会被GC回收。 2. ゝ一世哀愁。/ 2024年09月19日 06:27/ 0 赞/ 9 阅读
相关 如何避免Java的内存泄漏问题 Java内存泄漏主要发生在对象无法被垃圾回收机制正确处理的情况。以下是一些避免Java内存泄漏的方法: 1. **理解垃圾回收**:理解Java中对象何时会被垃圾回收器回收, ╰+哭是因爲堅強的太久メ/ 2024年09月10日 19:57/ 0 赞/ 30 阅读
相关 Java内存管理:如何避免内存泄漏? 在Java中,内存泄漏主要发生在对象被创建但无法被垃圾回收机制销毁的情况。以下是一些避免内存泄漏的方法: 1. **理解弱引用和软引用**:这些引用不会阻止对象的垃圾回收。但 迈不过友情╰/ 2024年09月04日 10:21/ 0 赞/ 18 阅读
相关 Java内存管理:如何避免内存泄漏? 内存泄漏是Java编程中一个常见的问题,它会导致可用系统内存不断减少,最终可能引发应用程序崩溃。以下是避免Java内存泄漏的一些主要策略: 1. **理解垃圾回收机制**:J 古城微笑少年丶/ 2024年09月04日 04:51/ 0 赞/ 24 阅读
相关 什么是内存泄漏?如何避免内存泄漏? 什么是内存泄漏?如何避免内存泄漏? 简介:什么是内存泄漏?如何避免内存泄漏? 学习代码 静态分配内存 学习代码 void func() { r囧r小猫/ 2024年03月30日 09:27/ 0 赞/ 49 阅读
相关 C++如何避免内存泄漏? 1. 使用智能指针: C++标准库提供了智能指针,如`std::shared_ptr`、`std::unique_ptr`和`std::weak_ptr`。这些智能指针能够自 £神魔★判官ぃ/ 2024年03月23日 23:49/ 0 赞/ 18 阅读
相关 内存溢出和内存泄漏以及常用解决方案 内存溢出和内存泄漏 什么是内存泄漏? 内存泄漏以发生的方式可以分为4类: 常发性 偶发性 迈不过友情╰/ 2022年11月25日 13:14/ 0 赞/ 129 阅读
相关 如何避免JS内存泄漏? 简介: 很多开发者可能平时并不关心自己维护的页面是否存在内存泄漏,原因可能是刚开始简单的页面内存泄漏的速度很缓慢,在造成严重卡顿之前可能就被用户刷新了,问题也就被隐藏了,但是随 骑猪看日落/ 2022年09月03日 07:23/ 0 赞/ 158 阅读
相关 如何避免内存泄漏、溢出的几种常用方法 尽早释放无用对象的引用。 好的办法是使用临时变量的时候,让引用变量在退出活动域后自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。 程序进行字符串处理时,尽 落日映苍穹つ/ 2022年06月08日 08:46/ 0 赞/ 220 阅读
还没有评论,来说两句吧...