Maison  >  Article  >  Java  >  Quelle est la différence entre la copie profonde et la copie superficielle en Java

Quelle est la différence entre la copie profonde et la copie superficielle en Java

王林
王林avant
2020-07-04 16:58:343306parcourir

Quelle est la différence entre la copie profonde et la copie superficielle en Java

Analyse des différences :

(Apprentissage recommandé : programme d'introduction à Java)

Copie superficielle

Toutes les variables de l'objet copié contiennent les mêmes valeurs que l'objet d'origine, et les références de tous les autres objets pointent toujours vers l'objet d'origine.

En d'autres termes, une copie superficielle ne copie que l'objet considéré, et non les objets auxquels il fait référence.

Copie complète

Toutes les variables de l'objet copié contiennent les mêmes valeurs que l'objet d'origine, à l'exception des variables qui font référence à d'autres objets. Les variables qui font référence à d'autres objets pointeront vers le nouvel objet copié, et non vers les objets référencés d'origine.

En d'autres termes, la copie profonde copie tous les objets référencés par l'objet copié.

(Tutoriel vidéo recommandé : Tutoriel vidéo Java )

Définissez une classe comme suit :

class Test {
    public int i;
    public StringBuffer s;
}

La figure suivante montre la copie d'objets de ce classe Quand, la différence entre la copie superficielle et la copie profonde :

Quelle est la différence entre la copie profonde et la copie superficielle en 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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer