Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Más a Fondo en String | String Avanzado
Java Avanzado
course content

Contenido del Curso

Java Avanzado

Java Avanzado

1. Estructura Profunda de Java
2. Métodos
3. String Avanzado
4. Clases
5. Clases Avanzadas

book
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

Main.java

copy
12345678910111213141516
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.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 1

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

course content

Contenido del Curso

Java Avanzado

Java Avanzado

1. Estructura Profunda de Java
2. Métodos
3. String Avanzado
4. Clases
5. Clases Avanzadas

book
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

Main.java

copy
12345678910111213141516
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.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 1
some-alt