总结:java中的作用域与单例和多例
来源:互联网 发布:世界历史书 知乎 编辑:程序博客网 时间:2024/06/07 21:44
变量和类离开作用域,变量所分配的内存空间将被JVM回收。
变量:在同一作用域范围的包裹下成员变量名和局部变量名是可以变量名相同的,在同一个作用域范围的包裹下局部变量和局部变量不可以变量名相同(作用域内不能重复命名),在方法中使用变量的时候如果不指明使用成员变量还是局部变量,那么默认的就是使用局部的那个变量,但是如果局部变量超出了它本身的作用域范围则会失效,被JVM垃圾回收,那么则可以重复命名此变量,并使用最新定义的这个局部变量。
对象:Java对象不具备与主类型一样的存在时间。用new关键字创建一个Java对象的时候,它会超出作用域的范围之外。
Spring bean 的作用域:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>或者<bean id="role" class="spring.chapter2.maryGame.Role" singleton="true"/>
2、prototype
<bean id="role" class="spring.chapter2.maryGame.Role" scope="prototype"/>或者<beanid="role" class="spring.chapter2.maryGame.Role" singleton="false"/>
3、request
<web-app> ... <listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> ...</web-app>
4、session
<bean id="role" class="spring.chapter2.maryGame.Role" scope="session"/>
5、global session
<bean id="role" class="spring.chapter2.maryGame.Role" scope="global session"/>
Servlet是单实例的。
servlet确实是单实例的,或者说是单态的,所有如果servlet中有一个成员变量,那么这个成员变量确实不是线程安全的,多个线程间可以互相影响。
struts1 中actioin 是单例。
即所有session对应一个action由spring来创建action时,默认处理,为单例(既然是单例,即使你设置成了多例,也不影响程序功能)
struts2 中action 是多例。
即一个session产生一个action。由spring来创建action时,须设置为prototype的,不能是singleton。
之所以struts2中action必须是多例的,主要原因在与请求数据和返回数据,大多都封装到了action中,用于实例变量,这样以来,如果将action设置成单例模式,则多个县城访问的时候,就会共享这些数据,从而引起数据混乱或者线程安全问题!
线程模式:
" Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
" Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
- 总结:java中的作用域与单例和多例
- Java中的单例模式的总结
- spring中的单例与java中的单例
- java中的单例模式与doublecheck
- java中的单例模式与doublecheck
- Java单例模式和多例模式知识点总结
- Java单例总结
- Java中的单例
- Java中的单例
- Java中的设计模式学习总结(二)---单例模式
- 单例的设计与作用
- 常见框架中的单例、多例与线程安全性总结
- java中的Properties类的使用 与单例模式
- volatile与synchronized在Java单例模式中的应用
- java中的单例模式与静态类
- Java中的单例模式理解与使用
- JAVA单例模式总结
- java基础,单例总结
- CF793B:B Igor and his way to work(DFS & BFS)
- Web基础之Request对象和Response对象项目实战
- 2017年上海金马五校程序设计竞赛(网上资格赛) B Coach(并查集)
- VS错误总结(部分)
- Linux学习笔记-003
- 总结:java中的作用域与单例和多例
- 学长教你搜狗面试怎么过!
- 2799 Simple Life @myLove (eden)
- 实用天气API总结
- IMWeb提升营Day5 | 训练题25:复杂链表的复制
- [bzoj 3270] 博物馆:高斯消元+期望转移
- 1289 大鱼吃小鱼
- 移动端产品盈利/推广
- 对于面对对象和prototype的理解