加为好友发送私信在线聊天
- pengble
- 等级:
- 可用分等级:乞丐
- 总技术分:0
- 总技术分排名:327011
- 结帖率:100.00%
|
发表于:2008-02-22 21:30:07楼主 |
我用Java开发的web应用老是出现内存快速增长,最后内存溢出的问题。我用的tomcat5,JDK1.4.2,内存最大设为1498M,有时候也很平稳,但快速增长时,则只增不降,很快就内存溢出了。最近站点登录人数平均一天100人吧,即使几十人也有可能内存溢出。但登录人数多出现这种情况会更频繁。我查阅了很多技术资料,在一些内存开销大的模块都加了System.gc()语句,但都无法解决内存溢出。这次我采用的是四层架构,现将示例代码贴出来,请各位技术高手看看有没有问题。 1、WebUser类是映射web_user表字段的值对象类。 2、DbWebUserImpl实现了数据库表记录进行进行基本的增删改的类。 public class DbWebUserImpl implements DbWebUser{ Connection conn = null;
public Connection getConnection() { return conn; }
public void setConnection(Connection connection) { this.conn=connection; }
public void updateWebUser(WebUser webUser) throws Exception { String strSql="update web_user set account=?,passwd=?,nickname=? where user_id=?"; PreparedStatement pstm=null; try{ pstm=conn.prepareStatement(strSql); int i=1; pstm.setString(i++,webUser.getAccount()); pstm.setString(i++,webUser.getPasswd()); pstm.setString(i++,webUser.getNickname()); pstm.setInt(i++,webUser.getUser_id().intValue()); pstm.executeUpdate(); }finally{ if(pstm!=null){ pstm.close(); pstm=null; } } } } 3、WebUserService是服务层,调用数据访问类的方法,表示层(jsp或action)就直接调用WebUserService类的方法 public class WebUserService extends BaseService{ private DbWebUser dbWebUser=DbFactory.getDbWebUser();
public boolean updateWebUser(WebUser webUser){ Connection conn = null; try{ conn=DataConnect.getConnection(); dbWebUser.setConnection(conn); dbWebUser.updateWebUser(webUser);
return true; }catch(Exception ex){ ex.printStackTrace(); message=ex.getMessage(); return false; }finally{ try{ if(conn!=null) conn.close(); }catch(Exception ex){ ex.printStackTrace(); } } } } 4、表示层(jsp或action)通过调用WebUserService类的updateWebUser方法,来更新web_user表的记录。 例如: WebUserService webUserService=new WebUserService(); Authorization authorization=(Authorization)session.getAttribute("authorization");
WebUserForm f=(WebUserForm)form; WebUser webUser=webUserService.getWebUser(authorization.getAccount()); webUser.setNickname(f.getNickname()); boolean bret=webUserService.updateWebUser(webUser); //webUser=null; 请问各位高手,如果这里不加webUser=null,会不会造成内存泄漏?但我将很多类似的模块都加上了Object=null,仍不能解决内存溢出。
这个问题困惑了我很久,一直无法解决。现在论坛提出,请各位老师帮帮忙,非常感谢!
|
|
|
问题点数:150 回复次数:22显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复 |
|
相关推荐
在Java开发中,处理大型Excel文件时,可能会遇到内存溢出的问题。这通常是由于Java的默认内存设置不足以处理大量数据导致的。本解决方案主要针对使用Apache POI库进行Excel读取时遇到的这类问题。 首先,Apache POI...
JAVA 内存溢出问题是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用的内存大于虚拟机能提供的最大内存。内存溢出问题可以从容器和程序类两个方面进行排查,容器问题可以调整容器参数来解决...
1. 堆内存:Java对象主要存储在堆内存中,过大或过多的对象可能导致堆溢出。 2. 非堆内存:包括JVM自身使用的内存(如方法区、元空间)和线程栈,这部分内存也可能导致溢出。 3. GC(Garbage Collection):Java的...
2. 清理应用程序中WEB-INF/lib下的jar,如果Tomcat部署了多个应用,很多应用都使用了相同的jar,可以将共同的jar移到Tomcat共同的lib下,减少类的重复加载。 第二种OutOfMemoryError:Java heap space 这种问题的...
Java内存管理是开发Java应用程序时的关键环节,内存泄露和溢出问题可能导致系统性能下降,甚至导致服务崩溃。本文将深入探讨如何检测和分析Java内存泄露与溢出,并介绍一种常用的工具——Memory Analyzer(MAT)。 ...
内存溢出配置是IT行业中,尤其是在Java应用开发与运维领域中的一个重要话题,它涉及到系统资源管理、性能调优以及故障排查等多个方面。标题与描述中重复提到“内存溢出配置”,这表明了对这一主题的关注与重视。接...
当"Java.lang.OutOfMemoryError: Java heap space"错误出现时,表示程序运行过程中堆内存已满,无法再为新的对象分配空间。 错误原因: 1. 创建了大量大型对象或者对象数量过多,导致堆内存耗尽。 2. 垃圾收集器...
Java内存溢出(Out Of Memory,OOM)是Java应用程序运行时常见的问题,它通常发生在程序对内存需求超过了Java虚拟机(JVM)所能提供的可用内存时。本文将深入探讨Java内存溢出的原因、表现以及如何解决。 1. **Java...
对于Java应用而言,了解如何有效识别并解决内存溢出问题至关重要。 #### 解决Java内存溢出的方法 ##### 1. **理解内存结构** 在深入探讨解决方案之前,首先需要了解Java虚拟机(JVM)的内存布局: - **堆内存**:...
在Java开发中,当面临大批量数据导出到Excel文件时,可能会遇到内存溢出的问题。这是因为Excel文件格式本身的设计,以及Java默认处理大数据的方式,可能导致内存占用过高,尤其是在一次性加载大量数据到内存中进行...
理解并解决Java内存溢出问题对于优化应用性能、提高系统稳定性至关重要。 首先,我们需要了解Java内存模型。Java虚拟机(JVM)将内存分为几个区域:堆(Heap)、栈(Stack)、方法区(Method Area)、程序计数器...
然而,在处理大量数据时,Kettle可能会遇到内存管理问题,导致Java堆空间溢出错误。这种错误通常表现为"Java heap space",意味着Java虚拟机(JVM)分配的内存不足以执行任务。 **Java堆空间的原理** Java堆是Java...
在软件开发领域,尤其是涉及到数据库应用的场景下,内存泄漏(Memory Leak)和内存溢出(Out of Memory,简称OOM)是两个常见的问题,它们直接影响到程序的性能、稳定性和可扩展性。以下是对这两个概念及其相关知识...
在Java编程中,"java heap space"内存溢出是一个常见的问题,它通常发生在应用程序尝试分配超过JVM堆内存限制的对象时。这个问题对于任何Java开发者来说都至关重要,因为如果不妥善处理,可能会导致程序崩溃。以下是...
Java内存溢出(Out of Memory,OOM)是Java应用程序中常见的问题,会导致程序崩溃或性能急剧下降。HeapAnalyzer是一款强大的工具,专为分析Java应用程序的内存状况,特别是针对内存溢出问题进行诊断。本文将详细介绍...
标题 "某应用内存溢出(暨jvm)分析分享" 提到的是一个关于应用程序,特别是N银行消费信贷backend应用的内存溢出问题及其在Java虚拟机(JVM)层面上的分析。内存溢出是程序运行时由于分配的内存不足导致无法继续执行...
Java内存溢出问题通常指的是Java应用程序在运行过程中由于内存分配不当或使用过度导致JVM无法分配更多的内存,从而抛出`java.lang.OutOfMemoryError`异常。本文将深入探讨Java内存溢出的不同类型及其解决方案。 1. ...
JVM 内存溢出类型有两种:java.lang.OutOfMemoryError: PermGen space 和 java.lang.OutOfMemoryError: Java heap space。PermGen space 是非堆内存,用于存放类的信息,GC 不会释放该空间。如果 web 应用使用了大量...
在Java应用开发过程中,特别是在进行大量数据处理如Excel导出等操作时,经常会遇到Tomcat服务器内存溢出的问题。内存溢出是指程序运行时申请的内存超过了系统能提供的可用内存,导致程序无法继续执行的一种异常状态...
Java内存溢出(Out Of Memory, OOM)是开发者在编程过程中经常遇到的问题,尤其是在处理大量数据或长时间运行的应用程序时。本篇文章将详细解析三种常见的Java内存溢出类型:JVM PermGen space溢出、JVM heap space...