NetConnectGlobal interview question

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