What will happen when you compile and run the following code?

public class X
{
    public static void main(final String[] args)
    {
        String s1 = "123";
        StringBuffer s2 = new StringBuffer(s1);

        if (s1.equals(s2)) {
            System.out.println("s1 equals to s2");
        }
        else if (s2.equals(s1)) {
            System.out.println("s2 equals to s1");
        }
        else {
            System.out.println("not equal.");
        }
    }
}
A) Compiler error.
B) RuntimeException.
C) Output "s1 equals to s2".
D) Output "s2 equals to s1".
E) Output "not equal".