Approfondissement des Chaînes de Caractères
Comment fonctionne réellement String ?
Vous savez déjà ce qu'est une String
et comment l'utiliser. Ce chapitre abordera les aspects théoriques de ce qui se trouve à l'intérieur d'une String
.
Explorons la représentation sous-jacente des valeurs String
en Java. À l'origine, String
était implémenté comme un tableau de valeurs char
, ce qui était simple et intuitif. Cependant, il a ensuite évolué vers un tableau de valeurs byte
. Comprenons la raison de ce changement.
Une variable char
en Java occupe 2 octets de mémoire, tandis qu'une variable byte
ne nécessite qu'1 octet. En utilisant des valeurs byte
, nous pouvons réduire considérablement l'empreinte mémoire, en utilisant seulement un quart de l'espace.
Mais comment une String
peut-elle contenir divers caractères, y compris des caractères non numériques ? Le mécanisme est similaire à celui d'une variable char
. Nous utilisons la table ASCII, où les données numériques sont associées à des caractères spécifiques, permettant ainsi la représentation d'une large gamme de caractères dans une String
.
Observons une illustration représentant la valeur String
"Hello" :
Les cellules contiennent des éléments de type byte
, que nous prenons dans la table ASCII. Il est même possible de visualiser dans le code le tableau exact de byte
qui est stocké dans la valeur d'une variable String
. Cela peut être réalisé à l'aide de la méthode 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(); } }
Nous pouvons constater que les valeurs byte
sont identiques à celles présentées dans le schéma ci-dessus. De plus, si cela vous intéresse, vous pouvez consulter la table ASCII et comparer le code de chaque élément avec sa valeur correspondante.
Nous pouvons manipuler ce tableau byte[]
obtenu à partir d'un objet String
.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.63
Approfondissement des Chaînes de Caractères
Glissez pour afficher le menu
Comment fonctionne réellement String ?
Vous savez déjà ce qu'est une String
et comment l'utiliser. Ce chapitre abordera les aspects théoriques de ce qui se trouve à l'intérieur d'une String
.
Explorons la représentation sous-jacente des valeurs String
en Java. À l'origine, String
était implémenté comme un tableau de valeurs char
, ce qui était simple et intuitif. Cependant, il a ensuite évolué vers un tableau de valeurs byte
. Comprenons la raison de ce changement.
Une variable char
en Java occupe 2 octets de mémoire, tandis qu'une variable byte
ne nécessite qu'1 octet. En utilisant des valeurs byte
, nous pouvons réduire considérablement l'empreinte mémoire, en utilisant seulement un quart de l'espace.
Mais comment une String
peut-elle contenir divers caractères, y compris des caractères non numériques ? Le mécanisme est similaire à celui d'une variable char
. Nous utilisons la table ASCII, où les données numériques sont associées à des caractères spécifiques, permettant ainsi la représentation d'une large gamme de caractères dans une String
.
Observons une illustration représentant la valeur String
"Hello" :
Les cellules contiennent des éléments de type byte
, que nous prenons dans la table ASCII. Il est même possible de visualiser dans le code le tableau exact de byte
qui est stocké dans la valeur d'une variable String
. Cela peut être réalisé à l'aide de la méthode 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(); } }
Nous pouvons constater que les valeurs byte
sont identiques à celles présentées dans le schéma ci-dessus. De plus, si cela vous intéresse, vous pouvez consulter la table ASCII et comparer le code de chaque élément avec sa valeur correspondante.
Nous pouvons manipuler ce tableau byte[]
obtenu à partir d'un objet String
.
Merci pour vos commentaires !