Немного не по теме, но я бы хотел, чтобы весь миф "не надо использовать плюс конкатенация строк в Java" исчезнет. Хотя в ранних версиях Java могло быть верно, что StringBuffer был быстрее и «+ был злым», это, безусловно, неверно в современных JVM, которые заботятся о многих оптимизациях.
Например, что быстрее?
String s = "abc" + "def";
или
StringBuffer buf = new StringBuffer();
buf.append("abc");
buf.append("def");
String s = buf.toString();
Ответ первый. JVM распознает, что это строковая константа, и фактически помещает «abcdef» в пул строк, тогда как версия «оптимизированного строкового буфера» приведет к созданию дополнительного объекта StringBuffer.
Другая оптимизация JVM -
String s = onestring + " concat " + anotherstring;
Где будет работать JVM, каким будет лучший способ объединения. В JDK 5 это означает, что StringBuilder будет использоваться внутри и будет быстрее, чем использование строкового буфера.
Но, как уже говорили другие ответы, константа "123456" в вашем вопросе, безусловно, самый быстрый путь, и ваш лектор должен вернуться к тому, чтобы стать студентом: -)
И да, мне было грустно проверить это, посмотрев на байт-код Java ...