title: String pool vs Constant pool
body: <p>Let's look at the folloing code snippet:</p>
  
  <pre><code>  String s1 = "Hello";
    String s2 = "Hello"; 
  </code></pre>
  
  <p>Both variables refer to the same object due to interning. Since strings are immutable, only one object is created and both refer to the same object.</p>
  
  <p>A <code>constant pool</code> is also something, which holds all the constants (integer, string, etc.) that are declared in a class. It is specific to each class.</p>
  
  <pre><code> System.out.println("Hello");  // I believe this Hello is different from above.
  </code></pre>
  
  <p><strong>Questions:</strong></p>
  
  <ol>
  <li>Does <code>string pool</code> refer to the pool of a constant string object in the constant pool?</li>
  <li>If yes, is <em>String pool</em> common throughout the whole application or specific to a class?</li>
  </ol>