Multiple choice technology programming languages

What is the output of the following,
...
StringBuffer sb1 = new StringBuffer("Debopam");
StringBuffer sb2= new StringBuffer("Debopam ");
String ss1 = " Debopam ";
System.out.println(sb1==sb2);
System.out.println(sb1.equals(sb2));
System.out.println(sb1.equals(ss1));
System.out.println("Poddar".substring(3));
...

  1. false<new line>false<new line>false<new line>dar

  2. false<new line>true<new line>false<new line>Poddar

  3. Compiler Error

  4. true<new line>true<new line>FALSE<new line>dar

Reveal answer Fill a bubble to check yourself
A Correct answer
Explanation

StringBuffer does not override equals(), so both == and .equals() perform reference comparison. sb1 and sb2 are different objects (different content - one has trailing space), so all comparisons return false. substring(3) on 'Poddar' returns characters from index 3: 'd','a','r' = 'dar'.