string instantiation vs stringbuffer instantiation
<p>I am not able to figure out that if</p>

<pre><code>String ab = "hello";        //straight initialization

String ab_1 = new String ("hello_1");  //initializing using new
</code></pre>

<p>both work, but </p>

<pre><code>StringBuffer bfr = new StringBuffer("hi");   //works only with new
</code></pre>

<p>works only if created with new.    </p>

<p>Why it is that String can be instantiated directly but StringBuffer needs new operator. Can someone explain me the main reason please.</p>
