| This Chapter | |
| - | Chapter 16: Object Caching |
| - | Implementing a Cache |
| - | Summary |
Creating Java objects is relatively more expensive than other operations, and constructing certain objects, such as database connections, is particularly compute intensive. To improve performance, you may want to cache and reuse these objects. For instance, database connection pooling is very common nowadays. With connection pooling, the system creates a number of connection instances and reuse them. Also, a servlet container normally only has one instance for each servlet (except those implementing javax.servlet.SingleThreadModel), and all HTTP requests are handled by the same servlet instance. In addition, objects obtained from JNDI lookup are normally a good target for caching considering that JNDI lookup takes lots of CPU cycles. Note, however, caching add complexity to your application, so you don’t want to cache any object. Also, depending on your approach, there are consequences, such as thread safety.
This chapter discusses object caching through the use of the Singleton pattern.