Question: ```
package com.mycontainer;

public class MyContainer {
    private static ContainerConfig cConfig;

    private MyContainer() {

    }

    public static ContainerConfig getConfiguration() {      
        if (cConfig == null)            
            cConfig = new ContainerConfig();        
        return cConfig;
    }

}

```

Answer: 
I would have to say that it is a poor implementation of the lazy initialization and Singleton pattern. There is no synchronization and hence no thread safety. Under multiple threads accessing this code you may end up with more than one instance.

### Update: It is better to have your code like this:

```
package com.mycontainer;

public class MyContainer {
   // static final singleton object to rely on class loader to create it for you
   // in a thread safe way
   private static final ContainerConfig cConfig = new ContainerConfig();

   // private constructor to prevent instantiation
   private MyContainer() {}

   // getter method for your singleton object
   public static ContainerConfig getContainerConfig() {
      return cConfig;
   }
}

```
Lazy Initialization. You're delaying initialization until it is needed.

See <http://www.javapractices.com/topic/TopicAction.do?Id=34>.