- 3
- 0
- 约1.26万字
- 约 11页
- 2019-01-02 发布于福建
- 举报
内存溢出所异常解决方案总结
内存溢出异常解决方案总结
一 调整 虚拟机参数
二 立即 释放无用的对象
三 利用序列化和反序列化技术
简单的说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)