Why we use String compare to String Buffer

Hi There,
We know that String is immutable and StringBuffer is mutable. But still why we go with String rather than StringBuffer. What is the main reason for using String than using StringBuffer. Please explain in detail.. :)

Because it just seems to end up working that way... The immutability of Strings is probably based in the fact that C/C++ strings are const char arrays. Why we use Strings is based on that fact that java converts string literals to String, not some other class (such as StringBuffer.

If the above doesn't make sense to you, ignore it, but remember it - might be useful!
And if you just randomly taught yourself to program, well... you're just like me!