title: What are the different ways we can break a singleton pattern in Java
body: <p>What are the different ways we can break a singleton pattern in Java. 
  I know one way i.e. if we do not synchronize the method in singleton , then we can create more than an instance of the class. So synchronization is applied. Is there a way to break singleton java class.</p>
  
  <pre><code>public class Singleton {
      private static Singleton singleInstance;
  
      private Singleton() {
      }
  
      public static Singleton getSingleInstance() {
          if (singleInstance == null) {
              synchronized (Singleton.class) {
                  if (singleInstance == null) {
                      singleInstance = new Singleton();
                  }
              }
          }
          return singleInstance;
      }
  }
  </code></pre>