Estoy leyendo "Better, Faster, Lighter Java" (por Bruce Tate y Justin Gehtland) y estoy familiarizado con los requisitos de legibilidad en equipos de tipo ágil, como lo que Robert Martin discute en sus limpios libros de códigos. En el equipo en el que estoy ahora, se me ha dicho explícitamente que no use el operador +
porque crea objetos de cadena adicionales (e innecesarios) durante el tiempo de ejecución.StringBuilder/StringBuffer vs. "+" Operador
Pero este article, escrito en el '04 habla de cómo la asignación de objetos es de aproximadamente 10 instrucciones de la máquina. (esencialmente gratis)
También habla sobre cómo el GC también ayuda a reducir los costos en este entorno.
¿Cuál es la relación real de rendimiento entre el uso de +
, StringBuilder
o StringBuffer
? (En mi caso es StringBuffer
solo porque estamos limitados a Java 1.4.2.)
StringBuffer
me resulta en un código feo y menos legible, como lo demuestran un par de ejemplos en el libro de Tate. Y StringBuffer
está sincronizado con subprocesos que parece tener sus propios costos que superan el "peligro" al usar el operador +
.
¿Pensamientos/Opiniones?
queation similar aquí http://stackoverflow.com/questions/4645020/when-to-use-stringbuilder-in-java – Navi
posible duplicado de [StringBuilder frente a la concatenación de cadenas en toString () en Java] (http://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java) –
Posible duplicado de [StringBuilder vs Concatenación de cadenas en toString() en Java] (http://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java) –