Multiple choice

What will be the output of the program? public class StringRef { public static void main(String [] args) { String s1 = "abc"; String s2 = "def"; String s3 = s2; /* Line 7 */ s2 = "ghi"; System.out.println(s1 + s2 + s3); } }

  1. abcdefghi

  2. abcdefdef

  3. abcghidef

  4. abcghighi

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

After line 7 executes, both s2 and s3 refer to a String object that contains the value "def". When line 8 executes, a new String object is created with the value "ghi", to which s2 refers. The reference variable s3 still refers to the (immutable) String object with the value "def".