当前位置:首页 > 内存 > 正文

前端内存溢出怎么解决

  • 内存
  • 2024-06-14 21:39:26
  • 3628

一、java面试题:如何解决内存溢出首先,对所有代码进行彻底的审查和检查,包括页面上的Java代码。
1.特别注意这些静态对象,尤其是Map、List、Set等类型的对象。变量会一直驻留在内存中,有很长的生命周期,不会被垃圾收集器回收。
2.对于代码,要检查是否产生大量冗余对象,以及一些逻辑业务处理类,算法是否过于复杂,调整算法,仔细检查代码,然后仔细重建代码。,可以提高代码质量,提高程序运行的稳定性。
中的内存溢出主要是由于栈上的变量太多造成的。其实,记忆还有很多。建议尽量将不用的设置为null以便回收,多使用局部变量,少使用成员变量。
1)变量中包含的对象较大,占用内存较多。
2)变量所包含的对象具有较长的生命周期。
3)、变量所包含的对象数据是稳定的。
4)、该类的对象实例对变量所包含的对象有共享要求。
4.我的程序的静态变量优化后,程序占用的内存量至少增加了5000到10000。所以不能忽视。
其次,还有与String类相关的东西:
1.堆叠字符串时,一定要使用StringBuffer的append方法,不要使用+运算符连接两个字符串。相差很大。并且不要在循环或某些重复操作中创建String对象,因为String对象是使用StringBuffer对象处理的,一个String对象应该生成三个对象(可能像这样:))。
2.使用stringlength()方法获取字符串长度时,不要将length放入循环中。您可以在循环外获取值。(包括向量大小方法)。尤其是卷发较多的时候,尽量把长度放在卷发外面。
intsize=();
for(inti=2;i...
}
3.处理内存溢出
try{
//dosth
....
}catch(outofmemoryerrore){//可以使用普通函数来执行。
("nomemory!");
();
//dosthagain
....
}
 4.对于频繁应用最好自己控制内存和释放内存操作,但()方法可能不适用。最好使用finalize来强制执行或者编写自己的finalize方法。Java中不保证每次调用此方法时都会启动垃圾收集。它只会向JVM发出这样的请求。目前尚不清楚是否会真正进行垃圾收集。