[Java] Différence entre l’affectation d’une variable de type de base et l’affectation d’une variable de type de référence

Domo est Fugito. Cette fois aussi, c'est un article qui sert également de critique de moi-même.

"Affectation à la variable"

"Affectation à une variable" consiste à définir une valeur sur la variable Faire.

Affectation à "variable de type de base"

Une variable de type de base est une «variable qui contient la valeur elle-même». Par exemple, si vous affectez 3 au numéro de variable de type int, le nombre sera La valeur à retenir est 3.


 int number = 3; // Remplace l'entier 3 par le nombre

Affectation à "variable de type de référence"

Une variable de type référence est "allouée dans la mémoire de l'ordinateur". Référence à une certaine zone (objet) (emplacement de l'objet) Une variable qui contient les informations de position) qui indique.


 String word = "Qiita"; // Attribuer la chaîne "Qiita" au mot variable?

Dans l'exemple ci-dessus, la chaîne de caractères "Qiita" est affectée au mot variable de type String. On dirait que c'est le cas. En d'autres termes, la valeur détenue par le mot variable Ressemble à la chaîne "Qiita". Cependant, en réalité, la valeur détenue par le mot variable est "Type chaîne de Une référence au projet. " Autrement dit, "mémoire de l'ordinateur Informations de localisation de la zone de stockage de la chaîne de caractères "Qiita" sécurisée ci-dessus " Le mot variable a.

La différence dans les propriétés de valeur d'une variable est que «la variable est affectée à une autre variable. Il apparaît visiblement lors du «remplacement».

"Attribuer cette variable à une autre variable"

int i = 21;
 int k = i; // Assigne la valeur de la variable i à la variable de type int k
 int i = 30; // Réaffecter 30 à la variable i

 //StringBuilder型変数sb1(参照型変数)を宣言
StringBuilder sb1 = new StringBuilder();
 sb1.append ("Qiita"); // Ajoute la chaîne "Qiita" à l'objet référencé par sb1
 StringBuilder sb2 = sb1; // Remplace la valeur de sb1 par sb2
 sb1.append ("★"); // Ajoute la chaîne "★" à l'objet référencé par sb1

 System.out.println (i); // Sortie "30"
 System.out.println (k); // Sortie "21"
 System.out.println (sb1); // Sortie "Qiita ★"
 System.out.println (sb2); // Sortie "Qiita ★"

Les variables de type de base sont des «variables qui contiennent la valeur elle-même». pour cette raison, Dans l'exemple ci-dessus, lorsque i est affecté à la variable de type int k, à ce point La valeur (21) détenue par i est attribuée et conservée. Par conséquent, même si 30 est réaffecté à i, la valeur de k ne change pas et reste à 21. Sera. D'autre part, les variables de type référence sont des "variables qui contiennent des références à des objets". Il est. Par conséquent, lorsque sb1 est remplacé par sb2, "le o auquel sb1 fait référence "Référence à l'objet" sera attribué comme valeur. femme Et "informations de position de l'objet détenu par sb1", également sb2 Il sera également conservé. Par conséquent, l'objet référencé par sb1 Le même objet lors de la sortie après avoir ajouté la chaîne de caractères "★" à Il y a aussi un changement dans sb2 qui fait référence à.

Résumé

-Les variables de type de base contiennent la "valeur elle-même" comme valeur -Les variables de type de référence contiennent une "référence à l'objet" comme valeur ・ La différence dans les propriétés des deux types de variables est "la valeur de cette variable dans une autre variable Devient apparent lorsque "est remplacé"

... Puis cette fois par ici. C'était Fugi.

(P.S.) Si vous avez des suggestions pour le contenu de l'article N'hésitez pas à me le faire savoir m (_ _) m

Recommended Posts

[Java] Différence entre l’affectation d’une variable de type de base et l’affectation d’une variable de type de référence
Différence entre le type primitif et le type de référence
[Java] Différence entre "variable finale" et "objet immuable"
Revue Java ③ (utilisation de base des tableaux / type de référence)
Type de données de base et type de référence
[Java] Différence entre == et égal
A propos du type de données de base Java et de la mémoire du type de référence
[Docker-compose] Différence entre env_file et environnement. À propos de la priorité de l'application de variable d'environnement
[Java] Différence entre Hashmap et HashTable
Types de données de base et types de référence (Java)
Différence entre la variable d'instance et la variable de classe
[JAVA] Différence entre abstrait et interface
[Java] Différence entre array et ArrayList
Types de données de base et types de référence Java
[Java] Différence entre fermable et fermable automatiquement
[Java] Différence entre StringBuffer et StringBuilder
[Java] Différence entre l'erreur de débordement de pile et l'erreur de mémoire insuffisante
[Java] Différence entre longueur, longueur () et taille ()
Différence entre final et immuable en Java
Différence entre la variable d'instance Ruby et la variable locale
[Note] Coopération entre Java et DB (basique)
[Connaissance de base de Java] À propos de la conversion de type
[Java] Différence entre la plage Intstream et la plageClosed
Différence entre int et Integer en Java
[Java] Comprendre la différence entre List et Set
[Java] Résumé personnel des classes et méthodes (basique)
Différence entre next () et nextLine () dans Java Scanner
Différence entre le membre et la collection de rails routes.rb
progate java L1 résumé de base cosole.log, différence entre les variables et les constantes, instruction if
[Java] Type de données ①-Type de base
Différence entre vh et%
Différence entre i ++ et ++ i
Ressentez facilement le type de base et le type de référence avec ruby
Déclaration / initialisation de variable Java / type de données (distribution et promotion)
[Java] Différence entre statique final et final dans les variables membres
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
Ressentez facilement le type de base et le type de référence avec ruby 2
[Java débutant] Différence entre la longueur et la longueur () ~ Je ne sais pas ~
Différence entre produit et variante
Différence entre redirect_to et render
Différence entre Java et JavaScript (comment trouver la moyenne)
Différence entre redirect_to et render
Différence entre CUI et GUI
Différence entre les variables et les variables d'instance
Différence entre mockito-core et mockito-all
Différence entre classe et instance
Différence entre l'installation de bundle et de bundle
[Java] Vérifiez la différence entre orElse et orElseGet avec IntStream
Différence entre ArrayList et LinkedList
Différence entre render et redirect_to
Différence entre List et ArrayList
java Generics T et? Différence
Avantages et inconvénients de Java
Différence entre .bashrc et .bash_profile
Différence entre StringBuilder et StringBuffer
Différence entre render et redirect_to