Aburrido de confiar en JavaEE desde la entrada hasta el abandono (11) clase de cadena _ principio de grupo constante

Uno. Clase de cadena y grupo constante

1. Conceptos básicos sobre cuerdas

Los números de cadena se denominan secuencias de caracteres inmutables .
La cadena se encuentra en el paquete java.lang y el programa Java importa todas las clases en el paquete java.lang de forma predeterminada.
Una cadena Java es una secuencia de caracteres Unicode. Por ejemplo, la cadena "Java" se compone de 4 caracteres Unicode 'J', 'a', 'v' y'a '.
Java no tiene un tipo de cadena incorporado, pero proporciona una clase predefinida en la biblioteca de clases estándar de Java:
String, cada cadena entre comillas dobles es una instancia de la clase String.

 

El método toString () es para imprimir: nombre de clase @ dirección de objeto, pero la cadena se emite como está al imprimir la cadena, porque la clase String reescribe el método toString ().

Código de muestra:

public class string {
    public static void main(String[] args) {
        String str1="abc";
        String str2=new String("abc");

        System.out.println(str1==str2);
        System.out.println(str1);//会自动调用toString()函数,但是String类重写了
        System.out.println(str2);
        System.out.println(str1.equals(str2));//比较字符串内容时用此函数
    }
}

Producción:

false
abc
abc
true

La razón por la que str1 == str2 devuelve falso es la siguiente:

Se puede ver que la dirección de str1 es 0x1 y la dirección de str2 es 0x2, str1 == str2 compara la dirección del objeto nuevamente y obviamente devuelve falso

2. Reserva constante

En el análisis de memoria de Java, a menudo escucharemos acerca de la descripción de "grupo constante", de hecho, el grupo constante también se divide en los siguientes tres:
1. Grupo constante de cadena global (Grupo de cadenas)
almacenado en la constante de cadena global pool El contenido se almacena en el String Pool después de que se carga la clase, solo hay una copia en cada VM y el valor de referencia de la constante de string se almacena (la instancia del objeto de string se genera en el montón).
2. Grupo de
constantes de clase El grupo de constantes de clase es propiedad de todas las clases durante la compilación.En la fase de compilación, se almacenan las constantes (cadenas de texto, constantes finales, etc.) y referencias de símbolos.
3. Grupo de constantes de tiempo de ejecución (Grupo de constantes de tiempo de ejecución)
Una vez que se carga la clase, el valor de referencia del símbolo en cada grupo de constantes de clase se vuelca en el grupo de constantes de tiempo de ejecución.

En otras palabras, cada clase tiene un grupo de constantes de tiempo de ejecución. Después de analizar la clase, la referencia del símbolo se reemplaza con una referencia directa, que es coherente con el valor de referencia en el grupo de constantes globales.

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_44593822/article/details/115381943
Recomendado
Clasificación