- 1
String s = (new StringBuilder()).append("c.").append(Integer.toString(i, 36)).append(".").append(Integer.toString(j, 36)).append(".dat").toString();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+75
String s = (new StringBuilder()).append("c.").append(Integer.toString(i, 36)).append(".").append(Integer.toString(j, 36)).append(".dat").toString();
Опять из сорцов минесрафта.
У нотча видимо StringBuilder головного мозга.
RaZeR 19.08.2011 17:39 # 0
guest 19.08.2011 18:10 # −2
Lure Of Chaos 19.08.2011 18:31 # 0
gegMOPO4 19.08.2011 18:41 # +2
Fail 19.08.2011 19:49 # 0
> String concatenation is implemented through the StringBuilder(or StringBuffer) class and its append method.
gegMOPO4 19.08.2011 20:19 # +4
Fai 20.08.2011 10:15 # −8
danilissimus 19.08.2011 22:45 # +1
RaZeR 20.08.2011 16:44 # 0
danilissimus 21.08.2011 16:00 # 0
Lure Of Chaos 21.08.2011 16:11 # 0
guest 20.08.2011 09:59 # −2
Это оптимизация по времени!
простая конкатенция строк работает медленей, потому что плодит кучу объектов String которые потом жава будет гарбажить.
guest 23.08.2011 14:02 # 0
saab 24.08.2011 12:27 # 0
все правильно! Человек не хочет плодить лишние объекты String, и используюет StringBuiler а не StringBuffer, чтобы он не дергал впустую мутексы.
в статье тоже предписывается никогда стринги напрямую не складывать. Не пойму.
ну разве что... "Собственно, компилятор при оптимизации чаще всего так и делает – прямые сложения он выполняет через StringBuffer" <- это оно? можно было просто сложить стринги, надеясь что компилятор заоптимизирует, да?
Да, это наверное оно. Спасибо.