1. Soporte incorporado de Java para cuerdas;
El llamado soporte incorporado significa que los tipos de cadenas no se implementan utilizando punteros de char, y la codificación de cadenas de Java cumple con los estándares de codificación de Unicode, lo que también significa que no es necesario implementarse utilizando clases de cadena y wstring como C ++ a ser compatible con el lenguaje C y el estándar Unicode. Java admite tipos de cadenas a través de la clase de cadena internamente.
Esto significa: podemos llamar directamente al mismo método que el objeto de cadena:
// Puede llamar directamente a todos los métodos del objeto de cadena en "ABC"
int longitud = "abc" .length ();
así como
String ABC = New String ("ABC");
int longitud = abc.length ();
2. El valor de cadena en Java es constante (constante)
Lo que queremos decir aquí es que después de que se crea el tipo de cadena, el valor no se puede cambiar. String ("def") el "ABC" y "Def" en el grupo constante almacenado en la máquina virtual Java.
El "ABC" en el siguiente código se almacena en el grupo constante, por lo que las direcciones apuntadas por las variables A y AB son los mismos "ABC" en el grupo constante.
La copia del código es la siguiente:
clase pública StringTest {
public static void main (string [] args) {
Cadena a = "ABC";
Cadena AB = "ABC";
String ABC = New String ("ABC");
System.out.println (ab == a);
System.out.println (a == ABC);
}
}
/*Salida del programa:
* verdadero
* FALSO
* */
Entonces, ¿cómo se implementan las cadenas variables y generadas dinámicamente? Java proporciona clases de StringBuffer y StringBuilder para lograr este requisito; ¿Se implementan StringBuilder y StringBuffer? Almacena cadenas a través de una matriz de personajes. El siguiente es un fragmento que se encuentra en el código fuente que viene con JDK.
3. Codificación de problemas en cadenas.
Dos preguntas para comprender aquí: ¿Cómo lidiar con la codificación de cadenas en los archivos de origen? ¿Qué codificación usa las cadenas al compilar archivos de clase o código se ejecuta en Java Virtual Machine?
El primer problema es que la codificación de cadena en el código fuente depende de su IDE o editor de texto. Por ejemplo, el siguiente código se edita en formato de codificación GBK, y luego abre su decodificación UTF-8 y GBK
// Formato de codificación GBK, abierto en formato GBK
// Formato de codificación GBK, Abra en formato UTF-8, GRANDE;
Entonces, ¿cómo lidiar con este tipo de problema de codificación del código fuente? La respuesta se especifica en la opción de parámetro: codificación del compilador JAVAC. La codificación predeterminada de Windows es generalmente GBK (este valor se puede obtener a través de System.getProperty ("File.Encoding")); Use Javac -Enting UTF- 8 Compile.
¿Cuál es la codificación de cadenas al compilar en un archivo o código de clase al ejecutar una máquina virtual Java? ¿Cómo se codifica el código fuente? Esto significa que mientras el compilador Javac comprenda correctamente la codificación de cadenas en el archivo del código fuente, las cadenas en el tiempo de ejecución o el archivo de bytecode de clase son independientes del formato de codificación en el código fuente. Aquí podemos comprender más a fondo la clase básica de caracteres o caracteres en Java. '1' La longitud de los personajes o los caracteres chinos en Java es de 16 bits.
Además, en el tipo de cadena, también usamos la codificación de carácter fijo especificado para convertir la representación binaria y la cadena subyacente, lo que significa que podemos leer correctamente la codificación de GBK, la codificación UTF-8 u otros archivos de texto codificados u otros que se convierte la secuencia de entrada convierte está en la cadena correcta en la memoria.
Por ejemplo, existen los siguientes métodos en la clase de cadena:
Cadena pública (byte [] bytes, charset charset);
byte público [] getBytes (charset charset);
Hay otro método de miembro al que debe prestarse atención:
Public byte [] getBytes ();