2 lines of
abzde
are printed. This is because s1 and s2 point to the same StringBuffer object. So changing one affects both variables.