title: Calling Class.forName() twice
body: <p>I am currently reading Class loader and their hierarchy functionality.
  If I call below code - </p>
  
  <pre><code>ClassA a=  Class.forName("com.test.ClassA")
  </code></pre>
  
  <p>As per my understanding,now it will be initialized and loaded in memory with help of Application Class loader.
  I have below questions:</p>
  
  <ol>
  <li>What will happen if I call again call the above code? Will there be new instance created in memory for 'ClassA' or will it return the same loaded class reference?</li>
  <li>If yes, as per this <a href="http://javarevisited.blogspot.com/2012/12/how-classloader-works-in-java.html" rel="nofollow">post</a> of javarevisited,"<strong>By using separate ClassLoader you can also loads same class from multiple sources and they will be treated as different class in JVM</strong>" 
  What will be use of it?</li>
  </ol>