Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Transfert de Données en Java | Deep Java Structure
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
Transfert de Données en Java

Comment l'information est-elle transmise en Java ?

Vous savez grâce au cours précédent qu'il existe deux types de mémoire : la pile et le tas. Examinons comment les données sont stockées dans ces deux zones mémoire :

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String number = new String("170"); String word = new String("word"); int poolNumber = -4; } }

Nous avons créé 3 variables différentes. Ci-dessous, un schéma illustre comment et où elles seront stockées en mémoire :

Passons en revue ce que vous avez observé dans le schéma :

  • Nous voyons des champs String dans la mémoire pile qui sont des liens vers des valeurs dans la mémoire tas. De cette façon, nous n'accédons pas directement à la mémoire tas à chaque fois. À la place, nous accédons d'abord au lien dans la mémoire pile, ce qui est plus rapide que d'accéder à la mémoire tas. Vous avez déjà rencontré des liens vers des valeurs lors de l'apprentissage du sujet String Pool ;
  • Vous pouvez voir que int n'est pas stocké dans la mémoire tas ; sa valeur est stockée directement dans la mémoire pile. Cela s'applique à tous les types de données primitifs (byte, short, int, long, float, double et boolean). Ainsi, les types de données primitifs sont passés par valeur en Java. Cependant, String n'est pas un type de donnée primitif, donc sa valeur est stockée dans la mémoire tas ;
  • Un nouvel objet est créé dans la mémoire tas pour chaque nouveau lien. Cependant, si deux variables du même type ont la même valeur, elles référenceront le même objet dans la mémoire tas ;
  • Le Integer Pool est une zone dans la mémoire pile où toutes les valeurs entières dans la plage de -128 à 127 sont liées. Cette optimisation est réalisée pour améliorer les performances de la gestion des nombres en Java, car les nombres dans cette plage sont couramment utilisés. Rappelez-vous que la mémoire pile fonctionne plus rapidement que la mémoire tas, ce qui permet d'obtenir des réponses plus rapides grâce à l'Integer Pool ;
  • Le String Pool est une zone dans la mémoire tas où les valeurs de chaînes identiques sont stockées.

Conclusion

En Java, tout est passé par valeur. Pour les objets, une copie de la référence est transmise, mais l'objet réel dans le tas reste inchangé (s'il est immuable, comme String).

Les variables dans la pile stockent des références vers des objets situés dans le tas. Cela s'applique à tous les types de référence, y compris String.

1. Qu'est-ce que l'Integer Pool en Java ?

2. Comment les données sont-elles transmises en Java, par référence ou par valeur ?

question mark

Qu'est-ce que l'Integer Pool en Java ?

Select the correct answer

question mark

Comment les données sont-elles transmises en Java, par référence ou par valeur ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 2

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
Transfert de Données en Java

Comment l'information est-elle transmise en Java ?

Vous savez grâce au cours précédent qu'il existe deux types de mémoire : la pile et le tas. Examinons comment les données sont stockées dans ces deux zones mémoire :

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String number = new String("170"); String word = new String("word"); int poolNumber = -4; } }

Nous avons créé 3 variables différentes. Ci-dessous, un schéma illustre comment et où elles seront stockées en mémoire :

Passons en revue ce que vous avez observé dans le schéma :

  • Nous voyons des champs String dans la mémoire pile qui sont des liens vers des valeurs dans la mémoire tas. De cette façon, nous n'accédons pas directement à la mémoire tas à chaque fois. À la place, nous accédons d'abord au lien dans la mémoire pile, ce qui est plus rapide que d'accéder à la mémoire tas. Vous avez déjà rencontré des liens vers des valeurs lors de l'apprentissage du sujet String Pool ;
  • Vous pouvez voir que int n'est pas stocké dans la mémoire tas ; sa valeur est stockée directement dans la mémoire pile. Cela s'applique à tous les types de données primitifs (byte, short, int, long, float, double et boolean). Ainsi, les types de données primitifs sont passés par valeur en Java. Cependant, String n'est pas un type de donnée primitif, donc sa valeur est stockée dans la mémoire tas ;
  • Un nouvel objet est créé dans la mémoire tas pour chaque nouveau lien. Cependant, si deux variables du même type ont la même valeur, elles référenceront le même objet dans la mémoire tas ;
  • Le Integer Pool est une zone dans la mémoire pile où toutes les valeurs entières dans la plage de -128 à 127 sont liées. Cette optimisation est réalisée pour améliorer les performances de la gestion des nombres en Java, car les nombres dans cette plage sont couramment utilisés. Rappelez-vous que la mémoire pile fonctionne plus rapidement que la mémoire tas, ce qui permet d'obtenir des réponses plus rapides grâce à l'Integer Pool ;
  • Le String Pool est une zone dans la mémoire tas où les valeurs de chaînes identiques sont stockées.

Conclusion

En Java, tout est passé par valeur. Pour les objets, une copie de la référence est transmise, mais l'objet réel dans le tas reste inchangé (s'il est immuable, comme String).

Les variables dans la pile stockent des références vers des objets situés dans le tas. Cela s'applique à tous les types de référence, y compris String.

1. Qu'est-ce que l'Integer Pool en Java ?

2. Comment les données sont-elles transmises en Java, par référence ou par valeur ?

question mark

Qu'est-ce que l'Integer Pool en Java ?

Select the correct answer

question mark

Comment les données sont-elles transmises en Java, par référence ou par valeur ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 2
some-alt