【JVM】避免java内存泄漏、溢出的几种方法

ops/2024/12/22 19:39:35/

1.尽早释放无用对象的引用。

好的办法是使用临时变量的时候,让引用变量在退出活动域后自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。

 

2. 程序进行字符串处理时,尽量避免使用String,应使用StringBuffer

因为每一个String对象都会独立占用内存一块区域,如:

java">String str = "aaa";    
String str2 = "bbb";    
String str3 = str + str2;   

假如执行此次之后str , str2再不被调用,那么它们就会在内存中等待GC回收,假如程序中存在过多的类似情况就会出现内存错误。

 

3. 尽量少用静态变量。

因为静态变量是全局的,GC不会回收。
 

4. 避免集中创建对象尤其是大对象,如果可以的话尽量使用流操作

JVM会突然需要大量内存,这时会触发GC优化系统内存环境;
如下在上传文件前,有如下操作

java">m_totalBytes = m_request.getContentLength();    
m_binArray = new byte[m_totalBytes];    

因为m_totalBytes可能得到的数很大,导致数组分配了很多内存空间,而且该数组不能及时释放。

 

5. 尽量运用对象池技术以提高系统性能

生命周期长的对象拥有生命周期短的对象时容易引发内存泄漏。

例如大集合对象拥有大数据量的业务对象时,可以考虑分块进行处理,然后解决一块释放一块的策略。

 

6. 不要在经常调用的方法中创建对象,尤其是忌讳在循环中创建对象。

可以适当的使用hashtable,vector 创建一组对象容器,然后从容器中去取那些对象,而不用每次new之后又丢弃。

 

7. 优化配置。

  • 设置-Xms、-Xmx相等;

  • 设置NewSize、MaxNewSize相等;

  • 设置Heap size, PermGen space:


http://www.ppmy.cn/ops/2614.html

相关文章

工业相机飞拍原理

一、什么是工业相机的飞拍技术 工业相机飞拍技术是一项高效、快速、准确的图像采集和处理技术。是指在高速运动的物体,或场景中使用工业相机进行拍摄,实现高效、准确、稳定的图像采集和处理。 二、工业相机飞拍的实现原理 飞拍就是使用硬件比较输出或精…

超越现实的展览体验,VR全景展厅重新定义艺术与产品展示

随着数字化时代的到来,VR全景展厅成为了企业和创作者展示作品与产品的新兴选择。通过结合先进的虚拟现实技术,VR全景展厅不仅能够提供身临其境的观展体验,而且还拓展了传统展示方式的界限。 一、虚拟现实技术的融合之美 1、高度沉浸的观展体验…

【数学建模】2024Mathorcup数学建模C题完整思路与代码论文解析

2024Mathorcup数学应用挑战赛C题|图神经网络的预测模型ARIMA时间序列预测模型人员排班混合整数规划模型|完整代码和论文全解全析 我们已经完成了2024Mathorcup数学建模挑战赛C题的40页完整论文和代码,相关内容可见文末,部分图片如下: 问题分…

未来的网络:人机环境复杂系统智能

未来的网络将是人机环境复杂系统智能的产物。这样的网络将不仅仅是连接设备和传输数据的基础设施,而是一个高度智能化、自适应的生态系统。它将整合人类与各种智能设备、传感器、机器人以及环境中的各种数据源,形成一个互动的、智能的网络生态系统。这种…

安全中级-初开始

一、网络基础 重要点:TTL值(防环,linux64.Windows128 ),IP数据包包头格式字节(20) 标识标志偏移量起到什么作用(数据超过1500会分片) wireshack抓包会有一个MSS&#x…

Adobe Premiere Pro将加入AI生成式功能,以提高视频编辑的效率;OpenAI宣布在东京设立亚洲首个办事处

🦉 AI新闻 🚀 Adobe Premiere Pro将加入AI生成式功能,以提高视频编辑的效率 摘要:Adobe宣布,将为Premiere Pro引入由生成式AI驱动的新功能,以提高视频编辑的效率。这些功能包括“生成扩展”,能…

单例模式底层避免线程安全问题的设计思想

单例模式(Singleton Pattern)是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要全局状态或者希望整个应用程序中某个对象只有一个实例时非常有用。 单例模式的关键特点包括: …

在比特币中,1 sat 是多少美元?

普通人绝对想不到,比特币能在2024年达到这个价值,早知道的话,我当初就是破釜沉舟也得买一个啊。 而在4月19号,也将迎来比特币再次减半。减半并不是说玩家手中的比特币要被突然减去一半,而是在后续的挖矿过程中&#xf…