A a = new A() 无状态
A a = new A(B b) 有状态

解决方案 »

  1.   

    根据状态管理模式的不同会话Bean可以分为两类:有状态(stateful)会话Bean和无状态(stateless)会话Bean。
    有状态会话Bean。
    一个对象的状态由它的成员变量(数据成员)的状态决定。有状态会话Bean的成员变量描述一个唯一的客户端-会话Bean的关联状态。因为客户端要与对应的会话Bean进行对话,所以这种状态通常被叫做会话状态。
    会话状态在整个会话期间被保留。如果客户端运行结束或者删除对应的会话Bean,这个会话就结束同时状态被清除。这种状态的短暂性并不是问题,相反,如果客户端和会话Bean的对话结束就不必要在保留会话的状态了。
    无状态会话Bean
    无状态会话Bean并不为客户端保留会话状态。在客户端掉用无状态会话Bean的方法时,对应会话Bean的数据成员会描述这个调用状态,但仅仅只在该方法调用期间保持这个状态。当方法调用结束,状态就被清除。除了在方法调用期间,所有同一个无状态会话Bean实例是等价的,可以被容器分配给任一客户端。
    因为无状态会话Bean可以同时支持多个客户端,所以能更好的支持应用程序的可数的大量客户端。很明显,对支持相同数量的客户端的应用程序,需要的无状态会话Bean会比有状态会话Bean要少。
    有时,EJB容器会在没有请求的时候把有状态会话Bean保存在内存(二级存储器Second Storage)中。不管什么时候,没有请求时无
      

  2.   

    上面老兄说得很清楚EJB中有状态会话Bean一般和rmi一起使用
      

  3.   

    一看就是COPY 过来的。如果需要保存客户端的信息,可以用STATEFUL SESSION BEAN。 比如一个购货车。可以和ENTITY BEAN 联合。如果只是让服务器做一个如计算或是什么的动作,可以用STATELESS SESSION BEAN。它可以和SESSION 联合完成动作,由 SESSION 保存信息, STATELESS SESSION BEAN 做对数据库的操作。它管理起来容易。