1. Les types de base ne peuvent être passés que par valeur, tandis que la classe d'encapsulation correspondant à chaque type de base est transmise par référence.
2. Du point de vue des performances, les types de base de Java sont créés sur la pile, et tous les types d'objets sont créés sur le tas (les références des objets sont créées sur la pile). Par exemple
Entier i = nouvel entier (10); où New Integer () est créé sur le tas, et son entier de référence I est sur la pile. L'émergence de classes d'encapsulation est d'utiliser plus facilement certaines méthodes qui ne sont pas disponibles dans les types de base, tels que ValueOf (), ToString (), etc. De plus, si vous souhaitez transmettre une référence à un objet int au lieu d'une valeur, vous ne pouvez utiliser que des classes d'encapsulation.
L'efficacité d'appel de l'allocation de la mémoire à la pile est très différente de l'efficacité de l'allocation de la mémoire sur le tas. Bien que l'allocation de la mémoire sur la pile soit efficace, il y a des fuites de mémoire dans l'allocation de la mémoire à la pile. (C'est un problème que les programmeurs médiocres ne peuvent pas résoudre ...) Java utilise une méthode très géniale pour améliorer l'efficacité de l'allocation de la mémoire sur le tas. Malgré cela, Java est toujours lent. Il est peu probable qu'il atteigne aussi vite que C ++, bien qu'il ait promis qu'un jour les opportunités virtuelles seront aussi rapides que le code machine.
JDK5.0 peut être automatiquement encapsulé, c'est-à-dire que les données de base peuvent être automatiquement encapsulées en classes d'encapsulation. L'avantage des types de données de base est qu'ils sont rapides (n'impliquent pas la construction d'objets et le recyclage). Le but des classes d'encapsulation est principalement de mieux gérer la conversion des données. Il existe de nombreuses méthodes et sont pratiques à utiliser.
Bien sûr, la passe du type d'encapsulation est une passe de référence, par exemple
Entier a = nouvel entier (1);
Indique qu'une référence de type entier a fait référence à un morceau de mémoire et que les données de cette mémoire sont 1; Et ce qui est stocké dans A est la référence (adresse) de ce morceau de mémoire. Lors du passage A à une autre méthode ou objet, la référence de A est passé.
Conversion entre les types:
String b = "123456";
int C = Integer.ParseInt (b);
Indique la conversion de la chaîne 123456 en un numéro entier, où ParseInt est une méthode statique, qui peut être utilisée directement
Un autre point est que dans certains cas, les classes d'encapsulation doivent être utilisées, comme une liste de collecte, qui ne peut qu'ajouter des objets, c'est-à-dire objet. Ensuite, il n'est certainement pas possible de stocker directement les numéros. Vous devez encapsuler les nombres dans des objets encapsulés, puis les stocker dans la liste, comme
List list = new ArrayList ();
list.add (nouvel entier (1));
list.add (nouvel entier (2));
list.add (nouvel entier (3));
list.add (nouvel entier (4));
Après JDK5.0, il peut être automatiquement emballé, il peut donc être abrégé comme
List list = new ArrayList ();
list.add (1);
list.add (2);
list.add (3);
list.add (4);
L'article ci-dessus comprend de manière globale les différences et les applications des types de base Java et des types d'emballage. C'est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.