The actual instance may or may not be deleted from the pool for efficiency sake. To the user, it appears that it has been removed, but inside the server, it probably wouldn't make sense to destroy the instance and have to recreate an object. It probably would use the same instance and reinitialize. For instance, take a stateless session bean, I set some instance variables for example( bad programming
), I end my client program, I start up the client program again or any other client program, and I create an same type of stateless session bean as before, now the first thing I do is read the instance variable, its entirely possible to get the old value back. Now stateful session beans are slightly different, there data is passivated. When you remove the data is basically lost, but the actual instance or object is put back into the pool.