String Literal Vs String Object en Java

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *