Не нужно быть быстрее, чем другой. Это не было верно перед Java 1.4.2, потому что при конкатенации больше чем двух строк с помощью "+" оператор, промежуточное звено String
объекты будут созданы во время процесса создания заключительной строки.
Однако как JavaDoc для состояний StringBuffer, по крайней мере, начиная с Java 1.4.2 использования "+" оператор компилирует вниз в создание StringBuffer
и append()
луг много строк к нему. Так никакое различие, по-видимому.
Однако быть осторожным при использовании добавления строки для другой внутренней части цикл! Например:
String myString = "";
for (String s : listOfStrings) {
// Be careful! You're creating one intermediate String object
// for every iteration on the list (this is costly!)
myString += s;
}
Имеют в виду, однако, что обычно конкатенация нескольких строк с "+" является более чистой, чем append()
луг их всех.
В настоящее время ведутся активные и постоянные исследования лучших и наиболее эффективных абстракций, которые можно использовать для создания параллельного программного обеспечения, не разбираясь в мелочах, т.к. у большинства разработчиков нет времени или желания заниматься разработкой.
Учитывая это, BCL имеет довольно высокий барьер для входа новых концепций, но это не значит, что они не появляются. Совсем недавно в .Net 4 будет представлена параллельная библиотека задач . Более ранние версии TPL на самом деле включали тип Future
, который с тех пор был вытеснен более новыми абстракциями .
Также ведутся активные исследования. происходит на арене каналов и т. д. через исследовательский язык Axum .
I '
Я согласен с Грегом Д., впереди много чего. MS с новым фреймворком .Net4 и их проект Axum. Проблема, которую я вижу со всеми этими подходами, заключается в том, что они становятся чрезвычайно сложными, а навыки, знания и опыт в области распределенных / параллельных / распределенных вычислений довольно «ограничены». Я пишу это не для того, чтобы кого-то обидеть, но считаю, что университеты и преподаватели в целом должны уделять этим темам больше внимания. Но я думаю и надеюсь, что массовое осознание, которое MS создает с помощью реализации многих из этих идей, Axum, CCR & DSS, библиотеки асинхронных агентов и т. Д., И общей тенденции / потребности к многоядерной / облачной компьютерной системе, которую мы увидим подробнее :)