1. What will be the output of the program? String s = "ABC"; s.toLowerCase(); s += "def"; System.out.println(s);
Ask Your Doubts Here
Comments
By: guest on 02 Jun 2017 01.26 am
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.