什么是有状态的变量或者类??

来源:9-3 Spring与线程安全

qq_撞碎南墙_0

2018-07-18

对无状态对象理解比较迷茫,什么是有状态的变量或者类??能举一个具体的栗子吗??

写回答

1回答

Jimin

2018-07-18

你好,有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。代码举例:

/**

 * 有状态bean,有state,user等属性,并且user有存偖功能,是可变的。  

 */ 

public class StatefulBean { 

    public int state; 

    // 由于多线程环境下,user是引用对象,是非线程安全的 

    public User user; 

    public int getState() { 

        return state; 

    } 

    public void setState(int state) { 

        this.state = state; 

    } 

    public User getUser() { 

        return user; 

    } 

    public void setUser(User user) { 

        this.user = user; 

    } 


无状态主要是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象.不能保存数据,是不变类,是线程安全的。代码举例:

/** 

 * 无状态bean,不能存偖数据。因为没有任何属性,所以是不可变的。只有一系统的方法操作。 

 */ 

public class StatelessBeanService {  

    // 虽然有billDao属性,但billDao是没有状态信息的,是Stateless Bean.  

    BillDao billDao;  

    public BillDao getBillDao() {  

        return billDao;  

    }     

    public void setBillDao(BillDao billDao) {  

        this.billDao = billDao;  

    }     

    public List<User> findUser(String Id) {  

         return null;  

    }  

}  


0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程