String Performance

Los Strings no se pueden modificar, luego cualquier operación que se haga sobre un String creará uno nuevo.

Por tanto, trabajar con Strings tiene un costo considerable de Performance. Para modificar cadenas de texto usaremos StringBuffer, o a partir de la versión 4.0 de java: StringBuilder.

No se deben concatenar Strings dentro de un bucle. Esto tendría un gran gasto de Performance.

Diferencia performance entre String, StringBuffer y StringBuilder

public class StringPerformance {

	public static void main(String[] args) {
		String s1 = "hola";
		StringBuffer s2 = new StringBuffer("hola");
		StringBuilder s3 = new StringBuilder("hola");
		
		long empieza = System.currentTimeMillis();
		for(int i = 0; i<10000; i++){
			s1 += "hola";
		}
		long final1 = System.currentTimeMillis()-empieza;
		empieza = System.currentTimeMillis();
		for(int i = 0; i < 10000; i++){
			s2.append("hola");
		}
		long final2 = System.currentTimeMillis()-empieza;
		empieza = System.currentTimeMillis();
		for(int i = 0; i <10000; i++){
			s3.append("hola");
		}
		
		long final3 = System.currentTimeMillis() - empieza;
		
		System.out.println("Usando la clase String: " + final1); output: 220
		System.out.println("Usando la clase StringBuffer: " + final2); output: 1
		System.out.println("Usando la clase StringBuilder: " + final3); output: 0
	}
}
  1. ¿Qué es Java?
  2. Eclipse
  3. Resolución de problemas
  4. Clases
  5. Objetos
  6. Hola mundo
  7. Comentarios
  8. Variables
  9. Constantes
  10. Operadores
  11. Lectura de datos
  12. Ejercicios con operadores aritméticos
  13. Estructuras de control
  14. Métodos
  15. Modificador static
  16. Arrays
  17. Ejercicio – juego del ahorcado
  18. Ejercicio - tres en raya
  19. Modificadores de acceso
  20. Constructores
  21. Herencia
  22. Polimorfismo
  23. Abstracción
  24. Interfaces
  25. Clases internas
  26. Garbage Collector
  27. String performance
  28. Encapsulación
  29. Contenedores
  30. Genéricos
  31. Ejercicio alta, baja, modificación y consulta en un ArrayList
  32. Ejercicio – juego de la oca
  33. Recorrer un map
  34. Sobreescritura equals
  35. Sobreescritura hashcode
  36. Sobreescritura compareTo
  37. Excepciones
  38. Implementar Serializable
  39. Enumeraciones
  40. Hilos
icono de mandar un mail¡Contacta conmigo!
contacta conmigoPablo Monteserín

¡Hola! ¿En qué puedo ayudarte?