Hi Faisal Fuad
String objects are immutable, it means that:
String str = "text";
is equivalent to:
char data[] = {'t', 'e', 'x', 't'};
and you can't change it. The reason String objects are immutable is related to the String constant pool, it makes Java more memory efficient when two references points to the same String. In my opinion StringBuilder is a whole different story, it acts as a buffer with a fixed capacity, once that buffer overflows, it is automatically made larger.
Both are useful , Strings for normal character manipulation and StringBuilder for file I/O streams or large blocks of changing characters.
Cheers
beepath