We cannot create StringBuffer objects with the syntax you specified.
Moreover A string buffer implements a mutable sequence of characters. A string buffer is like a String, but can be modified. At any point in time it contains some particular sequence of characters, but the length and content of the sequence can be changed through certain method calls. source
You may read the description given in the API. They have clearly stated that their value can be changed so using string pool will be worthless. [ December 04, 2008: Message edited by: Himanshu Gupta ]
Answer is 3. explanation is : two StringBuffer objects at run time and one at comile time i.e "abc" in the string pool. So does it mean whatever classes or constructors takes strings as arguments will create one additional object?