Lazy loading is a design pattern, and this design pattern is used by some ORM solutions such as Hibernate in the enterprise application to defer initialization of an object until it is called by another object at a point where it is needed. The purpose of this design pattern is memory optimization in the application. The lazy loading design pattern in Hibernate is achieved by using a virtual proxy object. In Lazy loading demonstration, we use a proxy, but this is not part of the proxy pattern.