Compare el rendimiento de la inicialización de strings para String Literal y String object.
Literal de string
String str = “GeeksForGeeks”;
Esta es una string literal. Cuando declara una string como esta, en realidad está llamando al método interno() en String. Este método hace referencia a un grupo interno de objetos de string. Si ya existe un valor de string «GeeksForGeeks», entonces str hará referencia a esa string y no se creará ningún objeto String nuevo. Consulte Inicializar y comparar strings en Java para obtener más detalles.
Objeto de string
String str = new String(“GeeksForGeeks”);
Este es un objeto de string. En este método, JVM se ve obligado a crear una nueva referencia de string, incluso si «GeeksForGeeks» está en el grupo de referencia.
Por lo tanto, si comparamos el rendimiento del literal de string y el objeto de string, el objeto de string siempre tardará más en ejecutarse que el literal de string porque construirá una nueva string cada vez que se ejecute.
Nota: el tiempo de ejecución depende del compilador.
A continuación se muestra el programa Java para comparar sus actuaciones.
// Java program to compare performance // of string literal and string object class ComparePerformance { public static void main(String args[]) { // Initialization time for String // Literal long start1 = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { String s1 = "GeeksForGeeks"; String s2 = "Welcome"; } long end1 = System.currentTimeMillis(); long total_time = end1 - start1; System.out.println("Time taken to execute"+ " string literal = " + total_time); // Initialization time for String // object long start2 = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { String s3 = new String("GeeksForGeeks"); String s4 = new String("Welcome"); } long end2 = System.currentTimeMillis(); long total_time1 = end2 - start2; System.out.println("Time taken to execute"+ " string object=" + total_time1); } }
Producción:
Time taken to execute string literal = 0 Time taken to execute string object = 2
Publicación traducida automáticamente
Artículo escrito por NishuAggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA