This principle basically states that if B is a subclass of A, and C is a subclass of A, then B should be able to subclass C without any problems, and vice versa. In other words, any class that currently extends Hashtable should be able to also extend Cachetable without any side-effects. It wasn't my original intention to support this notion, but the reader is correct in asserting that it is good object-oriented design. This means that the cache is locked during house cleaning, which leads to performance issues if you have a rather large collection. It also allows you to store an object, have a process die, and then be able to retrieve that object once the process restarts.
Persistence is the storage part that requires the serialization.
And JNDI is Sun's standard API for interfacing with directory and naming servers. I will discuss each concept briefly, then dive into the tool itself. Serialization and persistence Serialization is the technique by which an object can store and restore its state, usually to and from a stream of bytes. These primitive values must be managed in a predetermined format and order so that you can deserialize the object, thus restoring the object to its original state. Support for serialization allows an object to be persistent.