内存溢出常解决方案总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内存溢出常解决方案总结

内存溢出异常解决方案总结 一 调整 虚拟机参数 二 立即 释放无用的对象 三 利用序列化和反序列化技术 简单的说java中的堆和栈 java把内存分两种:一种是栈内存,另一种是堆内存 1。在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配; 2。堆内存用来存放由new创建的对象和数组 那些情况可以导致java内存溢出 数据量过于庞大 死循环 静态变量和静态方法过多 无法确定是否被引用的对象,java虚拟机不回收内存(内存泄漏),循环产生过多重复的对象实体 线程池为线程生命周期开销问题和资源不足问题提供了解决方案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。其好处是,因为在请求到达时线程已经存在,所以无意中也消除了线程创建所带来的延迟。这样,就可以立即为请求服务,使应用程序响应更快。而且,通过适当地调整线程池中的线程数目,也就是当请求的数目超过某个阈值时,就强制其它任何新到的请求一直等待,直到获得一个线程来处理为止,从而可以防止资源不足 pageContext,request,session,application生命周期 request是封装client端(也就是用户通过browser)提交的请求数据和属性的对象。 response是封装web server端响应数据和属性的对象。 我们经常会将pageContext、request、session和application混为一谈,因为它们都可以通过setAttribute()和getAttribute()来设定或读取属性。但它们之间是有别的,它们最大的区别在于使用范围。 pageContext对象的范围只适用于当前页面范围,即超过这个页面就不能够使用了。所以使用pageContext对象向其它页面传递参数是不可能的。 request对象的范围是指在一JSP网页发出请求到另一个JSP网页之间,随后这个属性就失效。 session的作用范围为一段用户持续和服务器所连接的时间,但与服务器断线后,这个属性就无效。比如断网或者关闭浏览器。 application的范围在服务器一开始执行服务,到服务器关闭为止。它的范围最大,生存周期最长。 session主要功能:验证用户是否登录。在几个页面上都能取得。 request:只有jsp:forward page= 跳转页面才能取得。 application:只要设置一次,所有的网页窗口都可以取得数据。 application session request-都需要跨多个页面 设置过多application 或每一个session保存过多的对象则性能降低 能使用request 就不要使用session 能使用session的就不要使用application application应用:在线人员统计、在线人员名单列表 pageContext:默认情况下一个页面的保存范围 实际上四种属性范围都是通过pageContext属性完成的 pageContext.setAttribute(name,mldn,PageContext.REQUEST_SCOPE);更改红字的名字得到。 在另外一页用request去接收String name=(String)request.getAttribute(name);%=name%; 如果要释放application资源要重新启动服务器 四种属性范围都是依靠pageContext展开的,但是在开发中,往往使用session和request范围最多。 JMS 如果用过JMS的话,会发现它类似写JDBC或JCA代码。它有创建或检索JMS资源的样板代码,每当你需要编写一个新类来发送或接受消息时,都得重复编写那个样本代码。下面列出了传统JMS实现涉及的步骤: 1、创建JNDI初始上下文context; 2、从JNDI上下文获得队列连接工厂; 3、从队列连接工厂取得队列Queue; 4、创建一个Session对象; 5、创建一个发送或接受对象; 6、利用第5部创建的发送或接受对象发送或接受消息; 7、处理完消息后,关闭所有JMS资源。 Hibernate缓存机制以及一级缓存和二级缓存的作用 Hibernate的缓存机制概念: java对象的属性(通常是一些集合类型的属性)占用的内存空间。如果对象的占用的内存很大就称为重量级的对象。如果对象的内存小就称为轻量级的对象。 Session 的缓存被称为hibernate的第一级缓存。SessionFactory的外置缓存称为hibernate 的二级缓存。这两个缓存都位于持久层,它们存放的都是数据库数据的拷贝。SessionFactory的内置缓存 存放元数据和预定义SQL, SessionFactory的内置缓存是只读缓存。 Ses

文档评论(0)

186****0507 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档