Home / Java Programming / Java.lang Class :: Discussion

Discussion :: Java.lang Class

  1. What will be the output of the program?

    String s = "ABC";  s.toLowerCase();  s += "def";  System.out.println(s); 

  2. A.
    ABC
    B.
    abc
    C.
    ABCdef
    D.
    Compile Error

    View Answer

    Workspace

    Answer : Option C

    Explanation :

    String objects are immutable. The object s above is set to "ABC". Now ask yourself if this object is changed and if so where - remember strings are immutable.

    Line 2 returns a string object but does not change the originag string object s, so after line 2 s is still "ABC".

    So what's happening on line 3? Java will treat line 3 like the following:

    s = new StringBuffer().append(s).append("def").toString();

    This effectively creates a new String object and stores its reference in the variable s, the old String object containing "ABC" is no longer referenced by a live thread and becomes available for garbage collection.


Be The First To Comment