Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Approfondissement des Chaînes de Caractères | String Avancé
Java Avancé

bookApprofondissement des Chaînes de Caractères

Fonctionnement réel des chaînes de caractères en Java

Vous connaissez 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ée comme un tableau de valeurs char, ce qui était simple et intuitif. Cependant, elle 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, il est possible de réduire considérablement l'empreinte mémoire, n'utilisant qu'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. On utilise 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.

Voici une illustration représentant la valeur String "Hello" :

Les cellules contiennent des éléments de type byte, que l'on extrait de 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

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(); } }

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.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain why Java switched from char[] to byte[] for String storage?

How does Java handle non-ASCII characters in Strings if it uses byte arrays?

Can you show an example of using getBytes() with a String in Java?

Awesome!

Completion rate improved to 2.63

bookApprofondissement des Chaînes de Caractères

Glissez pour afficher le menu

Fonctionnement réel des chaînes de caractères en Java

Vous connaissez 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ée comme un tableau de valeurs char, ce qui était simple et intuitif. Cependant, elle 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, il est possible de réduire considérablement l'empreinte mémoire, n'utilisant qu'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. On utilise 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.

Voici une illustration représentant la valeur String "Hello" :

Les cellules contiennent des éléments de type byte, que l'on extrait de 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

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(); } }

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.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 1
some-alt