Serie de cuestiones tales como la desigualdad, "==" y "nuevo"

  (Extracto ------ resumen más)

En primer lugar, ejecute un caso de prueba

  En cuanto a los problemas como la desigualdad en la cadena, debe tener en cuenta un área importante en la JVM, es decir, el conjunto de constantes . Ejecute el código siguiente los resultados de los dos grupos no son los mismos:

(1) No hay nuevas palabras clave

  Los resultados operativos son true , el lado derecho de los datos de cadena almacenada tipo está apuntando hacia el lado izquierdo del signo igual estos datos de referencia. "==" valor no es una comparación de dos objetos en Java, pero las referencias son equivalentes para comparar dos objetos .

public class Prueba 
{ 
    void main (String [] args) public static 
    { 
        Cadena Str0 = "520"; 
        Cadena str1 = "520"; 
        System.out.println (Str0 == str1); 
    } 
}

(2) Hay nuevas palabras clave

  Los resultados operativos son falsas , y str3 str2 son dos referencias distintas, tan falso retorno.

public class Prueba 
{ 
    void main (String [] args) public static 
    { 
        Cadena str2 = new String ( "1314"); 
        Str3 String = nueva cadena ( "1314"); 
        System.out.println (str2 == str3); 
    } 
}

En segundo lugar, la piscina constante

  JVM tiene un área muy importante que se llama la piscina constante. Los datos son los del grupo de constantes se determinó en tiempo de compilación, y se guardan algunos datos compilados .class archivo . Además de contener todos los ocho tipos de tipos de datos básicos (char, byte, short, int , long, float, doble, boolean) , hay array de cadena y un valor constante , y hay algunos símbolos aparecen en el texto por referencia .

  (1) Para el primer ejemplo del análisis, para hablar de Java Pila: pila Java se caracteriza por la velocidad de acceso (que el bloque del montón), pero un pequeño espacio, del ciclo de vida de datos fija, sólo pueden sobrevivir al final del método . cadena str = define como esto "520" Nos izquierda y derecha de los puntos de signo igual signo igual de vista, entonces, el valor de datos a la derecha del signo igual es durante la compilación se puede determinar, se almacena en la piscina constante; estos datos en la piscina constante también se guardan con su propia dirección, el contenido de la parte izquierda del signo igual es una referencia a los datos de la dirección de la piscina constante de los datos; cadena esto es un tipo de referencia.

  Pila tiene una característica que es el intercambio de datos . Para el primer ejemplo, la quinta línea de Str0 String = "520", el tiempo de compilación, la piscina constante crea una constante "520", y luego fue cadena str1 = "520", ir allí para encontrar este conjunto de constantes "520" que se encuentra, str1 también apuntan a la piscina constante "520", por lo Str0 == str1 devuelve true, ya que la dirección de los puntos de cuerda y str1 Str0 son la piscina constante "520." Por supuesto, si la cadena str1 = "521", es un asunto diferente, porque no hay piscina constante "521", se creará un "521" en la piscina constante, entonces str1 representa la dirección de la "521" en. El análisis de la cadena, de hecho, otros tipos de datos básicos son los mismos: vistazo a la piscina constante no hay datos que se creen, se devuelve los datos de dirección, no crear uno .

  (2) análisis para el segundo ejemplo, J AVA máquina virtual intérprete cuando se enfrentan a una nueva palabra clave, se abrirá una memoria para almacenar un objeto String en la memoria de pila , por lo str2, punto str3 a la memoria de pila, aunque la memoria es igual a "1314", pero debido a que es de dos memoria de pila diferente, por lo str2 == str3 retorno sigue siendo falsa.

 

Supongo que te gusta

Origin www.cnblogs.com/dashenaichicha/p/12552799.html
Recomendado
Clasificación