Pregunta de entrevista de NetConnectGlobal

What is difference between String, StringBuffer and StringBuilder? When to use them?