Maison  >  Article  >  Java  >  La différence entre les références en Java et les pointeurs en C++

La différence entre les références en Java et les pointeurs en C++

王林
王林original
2019-12-31 16:38:262486parcourir

La différence entre les références en Java et les pointeurs en C++

Les références Java et les pointeurs C++ pointent tous deux vers une adresse mémoire. Les opérations sur les données mémoire sont effectuées via des références ou des pointeurs, mais elles présentent des différences dans l'implémentation, les principes, les fonctions, etc. .

(1) Type : fait référence à un élément de données dont la valeur est une adresse. L'adresse encapsulée par Java peut être convertie en chaîne pour la visualisation, et il n'y a pas lieu de se soucier de la longueur. Un pointeur C++ est une variable qui contient une adresse. La longueur est généralement la longueur du mot informatique et peut être considérée comme un entier.

Tutoriels vidéo en ligne gratuits recommandés : Tutoriels vidéo Java

(2) Mémoire occupée : Il n'y a pas d'entité lorsque la référence est déclarée, et elle n'occupe pas d'espace. Un pointeur C++ ne se verra attribuer une valeur que s'il sera utilisé après sa déclaration. La mémoire ne sera pas allouée si elle n'est pas nécessaire.

(3) Conversion de type : la conversion de type de la référence peut échouer, une exception sera levée au moment de l'exécution ou la compilation ne réussira pas. Un pointeur C++ indique une adresse mémoire et pointe vers la mémoire vers le programme, c'est toujours une adresse, mais l'adresse pointée peut ne pas être celle souhaitée par le programme.

(4) Valeur initiale : La valeur initiale de la référence est le mot-clé java null. Les pointeurs C++ sont des entiers Si le pointeur n'est pas initialisé, sa valeur ne sera pas fixe, ce qui est très dangereux.

(5) Calcul : Les références ne peuvent pas être calculées. Les pointeurs C++ sont des entiers, qui peuvent être calculés, comme ++ ou --, donc les pointeurs sont souvent utilisés à la place des indices de tableau.

(6) Fuite de mémoire : les références Java ne provoqueront pas de fuite de mémoire. Les pointeurs C++ sont sujets aux fuites de mémoire, les programmeurs doivent donc les utiliser avec précaution et les recycler à temps.

(7) En tant que paramètre : les paramètres de la méthode Java ne transmettent que des valeurs. Lorsqu'une référence est utilisée comme paramètre, elle donnera une COPIE de la valeur référencée dans la fonction, cela n'a donc aucun sens d'échanger deux références. Paramètres dans la fonction Étant donné que la fonction n'échange que la valeur COPY du paramètre, il est logique de modifier les propriétés d'un paramètre de référence dans la fonction, car l'objet référencé par la COPY du paramètre de référence est le même objet que la référence. paramètre.

Le pointeur C++ est utilisé comme paramètre par la fonction. En fait, l'adresse vers laquelle il pointe est exploitée par la fonction, donc les opérations utilisant les paramètres du pointeur dans la fonction affecteront directement l'adresse pointée par le pointeur. (variable, objet, fonction, etc.).

Articles et tutoriels connexes recommandés : Tutoriel d'introduction à Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn