Les variables de tableau Java sont des types de référence

Les variables de tableau Java sont des types de référence.

Je pense que c'est une chose de base naturelle, mais depuis que je faisais à l'origine PHP, Pour mon propre mémorandum, je l'ai résumé un peu.

Par exemple, dans le cas du code suivant, 100 est émis.

int[] a = { 1, 2, 3 };
int[] b = a;
b[0] = 100;
System.out.println(a[0]);
// a[0]Sorties 100.

Cela est dû au fait que les variables de tableau Java sont des types de référence, donc un tableau a été créé pour int [] a Parce que l'adresse mémoire est stockée.

Par exemple, si l'adresse mémoire du tableau créé par int [] a est ABC123 (je ne pense pas qu'il existe réellement une telle adresse mémoire), Le tableau a est enregistré à cette adresse mémoire (emplacement) appelée ABC123.

Et comme ABC123, qui est l'adresse mémoire de la variable de tableau int [] a, est contenu dans int [] b, le fait est qu'il s'agit du même tableau. Par conséquent, b [0] = 100 équivaut à a [0] = 100.

Si vous écrivez le même code ci-dessous en PHP, 1 sera affiché au lieu de 100.

$a = [1,2,3];
$b = $a;
$b[0] = 100;
echo $a[0];
//1 est la sortie

Ce n'est pas un type de référence en PHP, il est passé par valeur, donc Ceci est dû au fait que le tableau de \ $ a lui-même est copié et passé à \ $ b, pas à l'adresse mémoire de \ $ a.

En PHP, pour en faire un type de référence, il faut ajouter \ & comme indiqué ci-dessous.

$a = [1,2,3];
$b = &$a;
// ↑$Avant un&Mettez
$b[0] = 100;
echo $a[0];
//100 est la sortie

En faisant cela, il devient un type de référence, et \ $ b contient l'adresse mémoire du tableau créé par \ $ a. Puisqu'il est stocké, l'opération est la même que dans le cas de Java ci-dessus.

Recommended Posts

Les variables de tableau Java sont des types de référence
[Java] Types de variables et types
[Java] tableau
Pourquoi les variables de classe sont-elles nécessaires? [Java]
Tableau Java
java (tableau)
Série Java Primer (variations et types)
Types de données de base et types de référence (Java)
Tableau Java
[Java] Array
Types primitifs Java, types de référence, immuable, mutable
Tableau Java
A propos des types primitifs et des types de référence Java
Types de données de base et types de référence Java
tableau java
[Java] Array
Les variables locales Java sont thread-safe
Java pour les débutants, les variables et les types
[Java] sortie, variables
variable de tableau java
[Java] Note sur le tableau
Référence de la méthode Java8
[WIP] Variables Java
référence de la méthode java8
Matériaux de référence JAVA
Ma référence Java
[Java] Types de variables et types
Série Java Primer (variations et types)
Les variables de tableau Java sont des types de référence
Java pour les débutants, les variables et les types
Lorsqu'il y a des variables d'environnement dans les tests Java
Ce que j'ai appris en Java (partie 2) Que sont les variables?
Revue Java ① (étapes de développement, grammaire de base, variables, types de données)
A propos de la liste des baies Java
Si les arguments Java sont passés par valeur ou par référence
A propos du type de données de base Java et de la mémoire du type de référence
[Java] Principaux types de données
[Java Silver] Que sont les variables de classe, les variables d'instance et les variables locales?
Types de données de base Java
Si les variables ne sont plus mises en évidence dans l'éditeur Java d'Eclipse
Générer un flux à partir d'un tableau de types primitifs en Java
[Java] Référence de classe de wrapper Integer
[Java] Conversion de type de liste / type de tableau
Référence du service Java VB.net à mi-chemin
(Remarque) Classes / variables / méthodes Java
Les égaux Java sont assez désagréables
À propos des types de chargeur de classe Java
J'ai étudié les types primitifs Java
[Variables environnementales] rails Quelles sont les variables environnementales?
Quelles sont les variables pratiquement finales?
Méthode de classe variable de classe Java
Bases du développement Java ~ Exercice (tableau) ~
Comment utiliser les variables Java
[Java] Convertir ArrayList en tableau
[Java Silver] Comment générer un tableau
Comment initialiser un tableau Java
[Débutant] Description du "tableau" de base Java
Java Learning 1 (apprendre divers types de données)
Que sont les métriques Java? _Memo_20200818
[Introduction à Java] À propos des variables et des types (déclaration de variable, initialisation, type de données)
Bases du développement Java ~ Comment écrire des programmes (variables et types) ~