The concatString() method is made up of 15 instructions.  

A total of five objects are created.  Two Strings at instructions 0 and 4.  A temporary StringBuilder at instruction 10.  Two more Strings at instructions 21 and 26.

The other two methods have only 10 instructions each and only create 3 objects.  A StringBuilder/StringBuffer at instruction 0.  Two Strings at instructions 4 and 11.


Output from javap -c ConcatTest

----------------------------------
Compiled from "ConcatTest.java"
public class ConcatTest extends java.lang.Object{
public ConcatTest();
  Code:
   0:	aload_0
   1:	invokespecial	#1; //Method java/lang/Object."<init>":()V
   4:	return

public static void main(java.lang.String[]);
  Code:
   0:	invokestatic	#2; //Method concatString:()V
   3:	invokestatic	#3; //Method concatStringBuffer:()V
   6:	invokestatic	#4; //Method concatStringBuilder:()V
   9:	return

static void concatString();
  Code:
   0:	new	#5; //class java/lang/String
   3:	dup
   4:	ldc	#6; //String Java 
   6:	invokespecial	#7; //Method java/lang/String."<init>":(Ljava/lang/String;)V
   9:	astore_0
   10:	new	#8; //class java/lang/StringBuilder
   13:	dup
   14:	invokespecial	#9; //Method java/lang/StringBuilder."<init>":()V
   17:	aload_0
   18:	invokevirtual	#10; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   21:	ldc	#11; //String Programming
   23:	invokevirtual	#10; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   26:	invokevirtual	#12; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
   29:	astore_0
   30:	return

static void concatStringBuffer();
  Code:
   0:	new	#13; //class java/lang/StringBuffer
   3:	dup
   4:	ldc	#6; //String Java 
   6:	invokespecial	#14; //Method java/lang/StringBuffer."<init>":(Ljava/lang/String;)V
   9:	astore_0
   10:	aload_0
   11:	ldc	#11; //String Programming
   13:	invokevirtual	#15; //Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
   16:	pop
   17:	return

static void concatStringBuilder();
  Code:
   0:	new	#8; //class java/lang/StringBuilder
   3:	dup
   4:	ldc	#6; //String Java 
   6:	invokespecial	#16; //Method java/lang/StringBuilder."<init>":(Ljava/lang/String;)V
   9:	astore_0
   10:	aload_0
   11:	ldc	#11; //String Programming
   13:	invokevirtual	#10; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
   16:	pop
   17:	return

}

