C'est un article que j'ai résumé sur les primitives et les classes wrapper, et le contenu qui les entoure. J'apprends actuellement à me qualifier pour Java Silver, et j'écris que je comprends à ce niveau, donc cela peut manquer de rigueur ou de précision. Veuillez comprendre (si vous faites une erreur, faites-le moi savoir).
・ Les personnes qui envisagent d'obtenir une qualification Java ・ Les gens qui ne comprennent pas ce qu'ils disent, comme les primitifs, les classes de rappeurs et la boxe automatique.
Type primitif, type de référence, classe wrapper, boxing automatique, unboxing
** [Définition approximative] ** ・ Un des types de données Java -Le type de base de Java, également appelé type valeur -Il y a une valeur dans la zone de pile de mémoire
[type] Il existe 8 types en tout. Je pense que vous n'avez pas à vous souvenir de la plage de valeurs qui peut être exprimée (~~, j'ai donc arrêté d'écrire au milieu ~~). Je pense qu'il est normal de se souvenir du nombre de bits, plus le nombre de bits est grand, plus la plage pouvant être exprimée est large [^ 10].
Type de données | Valeurs et plages pouvant être exprimées | bit(bit) | Exemple concret |
---|---|---|---|
boolean | true, false | 1 | |
byte | -128 ~127 entiers | 8 | |
char | \u0000 ~ \Chaîne Unicode uFFFF | 16 | |
short | -32768 ~32767 entier | 16 | |
int | entier | 32 | |
float | Nombre réel(Nombre à virgule flottante simple précision) | 32 | 2f, 100F |
long | entier | 64 | 10l, 5L |
double | Nombre réel(Nombre à virgule flottante double précision) | 64 |
** [Définition approximative] ** ・ Un des types de données Java ・ Chaîne, tableau, liste, etc. -La zone peep de la mémoire contient la valeur de référence de la variable et la zone de pile contient la valeur indiquée par la valeur de référence.
Pour écrire la dernière définition plus en détail, l'objet nouvellement créé (≒ instance) est affecté à la zone de pile, et le pointeur (adresse en mémoire) vers cet objet est affecté à la zone de peep comme valeur de référence ( Référence 4> [Type primitif et type de référence](https://qiita.com/hysdsk/items/2e94c8722dc8f950e77c# Type primitif et type de référence).
[Reference 2] et [ref2] sont très détaillés sur la différence de comportement lors de l'assignation entre le type primitif et le type de référence, veuillez donc vous y référer. (Cette fois, le sujet principal n'est pas là, je vais donc passer à autre chose)
** [Définition approximative] ** ・ Classe évolutive de types primitifs classés comme type de référence ← Ça a l'air fort -Chaque classe a une méthode pratique ・ Il se comporte comme un type primitif, mais le contenu peut être nul (donc faites attention à nullpo)
C'est probablement une classe wrapper car elle enveloppe (enveloppe) le type primitif! Le contenu est de type primitif. Faisons un tableau qui correspond au type primitif (sauf pour certains, il a la même forme que le type primitif!).
Type primitif | Classe de wrapper |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
short | Short |
int | Integer |
float | Float |
long | Long |
double | Double |
Je l'ai écrit comme une méthode pratique, mais par exemple, dans le cas de ʻInteger, convertissez la chaîne de caractères en type int avec ʻInteger.parseInt (String)
, convertissez le type int en chaîne de caractères avec ʻInteger.valueOf (int)`, etc. , Divers sont disponibles (ce dernier est également utilisé lors de la conversion explicite en type Integer, voir le chapitre suivant pour plus de détails).
Sur la base de l'explication jusqu'à présent, si vous écrivez la définition
Autoboxing: conversion automatique du type primitif à la classe wrapper Déballage: conversion automatique de la classe wrapper au type primitif [^ 15]
est! Je ne pense pas que ça ait quoi que ce soit à voir avec la boxe sportive, je ne sais pas [^ 20]! Je pense que c'est une boîte automatique parce qu'elle enveloppe automatiquement le type primitif (= le met dans la boîte), et inversement c'est unboxing parce qu'il est sorti de la boîte.
Le code réel ressemble à ceci (cité de la référence 7).
//Boxe automatique
int numInt = 10;
Integer numInteger = numInt;
//Déballage
Integer numInteger = new Integer(10);
int numInt = numInteger;
L'illustration de la boxe automatique et du déballage ressemble à ceci.
Boxe automatique
==>
[Type primitif] [Classe de wrapper]
<==
Déballage
Oh, au fait, le fait que j'ai écrit "conversion automatique" ci-dessus signifie que vous pouvez également effectuer explicitement la mise en boîte automatique et le déballage (cité dans la référence 7).
//Boxe automatique
int numInt = 10;
Integer numInteger = new Integer(numInt);
//Ou ci-dessous
Integer numInteger = Integer.valueOf(numInt);
//Déballage
Integer numInteger = new Integer(10);
int numInt = numInteger.intValue();
Je peux ou non écrire quelque chose, c'est indécis.
Merci d'avoir lu jusqu'au bout!
** Informations de test (à partir de la référence 1) ** Objet: Programmeur Java SE 8 I Numéro de test: 1Z0-808 [^ 30] Durée du test: 150 minutes Nombre de questions: 77 questions Ligne de passage: 65%
En écrivant cet article, j'ai fait référence aux livres et sites suivants. Je profite de cette occasion pour vous remercier. Toutes les références sont beaucoup plus faciles à comprendre que mes explications, je recommande donc de les lire!
[]: Liste d'URL [ref2]: https://freelance-jak.com/technology/java/1175/ [ref3]: https://wa3.i-3-i.info/word15876.html [ref4]: https://qiita.com/hysdsk/items/2e94c8722dc8f950e77c [ref5]: https://www.sejuku.net/blog/22828 [ref6]: https://www.javadrive.jp/start/wrapper_class/index1.html [ref7]: https://qiita.com/chihiro/items/870eca6e911fa5cd8e58
Recommended Posts