¿Cómo se implementa Java cadena de constructor?

Abhis:

Iba a través de código fuente de Java cadena, encontró un CTOR donde tengo algunas dudas:

public String(String original) {
    this.value = original.value;
    this.hash = original.hash;
}

Entendí que original está actuando como literal String(con comillas dobles) pero no es capaz de entender cómo es java / JVM computada original.valuecomo charmatriz. ¿Cuál es el "valor" de aquí ?? si el valor es charde matriz entonces cómo .valuela función / campo se calcula ???

Joop Eggen:

Cadena por diseño contiene texto Unicode, por lo que todas las secuencias de comandos de idioma se pueden combinar. Para que la aplicación contiene una matriz (nombre de campo value), donde cada char es un valor de dos bytes UTF-16.

¿Se ha encontrado el único punto que yo sepa tonto en las clases de Java.

La muestra constructor de copia tiene sentido, ya que las cadenas son objetos inmutables, y que puede ser compartida por simple asignación. Es un fossile de herencia C ++, tal vez en asociación con la cadena internar.

Para hacer una copia no tiene sentido. Esto es válido también para la interna charmatriz, que de hecho puede ser asignada por referencia. (No es muy consecuente.)

Así lo muestra el siguiente inexperto uso de Java:

String s = new String(t);

Con las nuevas versiones Java, el valor de una cadena en realidad podría ser una matriz de bytes en algunos de codificación, y por lo tanto los caracteres se proporcionan pereza.


Sobre literales de cadena:

Los literales de cadena se almacenan en una estructura de datos en un archivo .class llamado el conjunto de constantes . Almacenado es como UTF-8 bytes. La JVM ClassLoader asegura que la cadena se carga como de cadena.

Las importaciones de final static Stringconstantes se copian en la piscina constante, y la clase original ya no pueden aparecer como siendo importado de. Manteniendo constantes de cadena en otra clase puede requerir hacer manualmente una generación limpia, puesto que ya no podría existir una dependencia clase.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=293142&siteId=1
Recomendado
Clasificación