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é
course content

Contenu du cours

Java Avancé

Java Avancé

1. Deep Java Structure
2. Méthodes
3. String Avancé
4. Classes
5. Classes Avancées

book
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

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

course content

Contenu du cours

Java Avancé

Java Avancé

1. Deep Java Structure
2. Méthodes
3. String Avancé
4. Classes
5. Classes Avancées

book
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

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