Aprofundando em String
Como o String realmente funciona?
Você já sabe o que é uma String e como utilizá-la. Este capítulo abordará os aspectos teóricos do que está por trás de uma String.
Vamos explorar a representação interna dos valores de String em Java. Inicialmente, String era implementada como um array de valores char, o que era simples e intuitivo. No entanto, posteriormente, passou a ser um array de valores byte. Vamos entender o motivo dessa mudança.
Uma variável char em Java ocupa 2 bytes de memória, enquanto uma variável byte requer apenas 1 byte. Ao utilizar valores byte, é possível reduzir significativamente o uso de memória, utilizando apenas um quarto do espaço.
Mas como uma String acomoda diversos caracteres, inclusive não numéricos? O mecanismo é semelhante ao de uma variável char. Utilizamos a tabela ASCII, onde dados numéricos são mapeados para caracteres específicos, permitindo a representação de uma ampla variedade de caracteres em uma String.
Veja a seguir uma ilustração representando o valor String "Hello":
As células contêm elementos do tipo byte, que são retirados da tabela ASCII. É possível até visualizar no código o array exato de byte que está armazenado no valor de uma variável String. Isso pode ser feito utilizando o método getBytes().
Main.java
12345678910111213141516package 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 os valores de byte são idênticos aos mostrados no diagrama acima. Além disso, caso tenha interesse, consulte a tabela ASCII e compare o código de cada elemento com seu valor correspondente.
É possível manipular esse array byte[] obtido a partir de um objeto String.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 2.63
Aprofundando em String
Deslize para mostrar o menu
Como o String realmente funciona?
Você já sabe o que é uma String e como utilizá-la. Este capítulo abordará os aspectos teóricos do que está por trás de uma String.
Vamos explorar a representação interna dos valores de String em Java. Inicialmente, String era implementada como um array de valores char, o que era simples e intuitivo. No entanto, posteriormente, passou a ser um array de valores byte. Vamos entender o motivo dessa mudança.
Uma variável char em Java ocupa 2 bytes de memória, enquanto uma variável byte requer apenas 1 byte. Ao utilizar valores byte, é possível reduzir significativamente o uso de memória, utilizando apenas um quarto do espaço.
Mas como uma String acomoda diversos caracteres, inclusive não numéricos? O mecanismo é semelhante ao de uma variável char. Utilizamos a tabela ASCII, onde dados numéricos são mapeados para caracteres específicos, permitindo a representação de uma ampla variedade de caracteres em uma String.
Veja a seguir uma ilustração representando o valor String "Hello":
As células contêm elementos do tipo byte, que são retirados da tabela ASCII. É possível até visualizar no código o array exato de byte que está armazenado no valor de uma variável String. Isso pode ser feito utilizando o método getBytes().
Main.java
12345678910111213141516package 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 os valores de byte são idênticos aos mostrados no diagrama acima. Além disso, caso tenha interesse, consulte a tabela ASCII e compare o código de cada elemento com seu valor correspondente.
É possível manipular esse array byte[] obtido a partir de um objeto String.
Obrigado pelo seu feedback!