public class StringBufferLockElision { public StringBufferLockElision() { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < 500_000; i++) { String joined = concatPieces("a", "b", "c"); buffer.append(joined); } System.out.println(buffer.toString()); } private String concatPieces(String one, String two, String three) { StringBuffer buffer = new StringBuffer(); buffer.append(one); buffer.append(two); buffer.append(three); return buffer.toString(); } public static void main(String[] args) { new StringBufferLockElision(); } }