Contenido del Curso
Java Avanzado
Java Avanzado
Más a Fondo en String
¿Cómo funciona realmente String?
Ya sabes qué es un String
y cómo trabajar con él. Este capítulo abordará los aspectos teóricos de lo que hay dentro de un String
.
Exploremos la representación subyacente de los valores String
en Java. Inicialmente, String
se implementaba como un arreglo de valores char
, lo cual era sencillo e intuitivo. Sin embargo, posteriormente se cambió a un arreglo de valores byte
. Comprendamos la razón detrás de este cambio.
Una variable char
en Java ocupa 2 bytes de memoria, mientras que una variable byte
solo requiere 1 byte. Al utilizar valores byte
, se puede reducir significativamente el uso de memoria, utilizando solo una cuarta parte del espacio.
Pero, ¿cómo puede un String
acomodar varios caracteres, incluidos los no numéricos? El mecanismo es similar al de una variable char
. Se utiliza la tabla ASCII, donde los datos numéricos se asignan a caracteres específicos, lo que permite la representación de una amplia gama de caracteres en un String
.
Veamos una ilustración que representa el valor String
"Hello":
Las celdas contienen elementos de tipo byte
, que se obtienen de la tabla ASCII. Incluso es posible ver en el código el arreglo exacto de byte
que se almacena en el valor de una variable String
. Esto se puede hacer utilizando el método getBytes()
.
Main.java
package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }
Podemos observar que los valores de byte
son idénticos a los mostrados en el diagrama anterior. Además, si resulta de interés, se puede consultar la tabla ASCII y comparar el código de cada elemento con su valor correspondiente.
Es posible manipular este arreglo byte[]
que se obtiene a partir de un objeto String
.
¡Gracias por tus comentarios!