Tout d'abord, s est de type int, qui est un type de base, pas un type Object, donc il n'existe pas de "créer de nombreux objets s en double"
Ce qui est créé ici est une variable de type int. Cette variable est stockée sur la pile
Même si vous définissez le nombre de boucles sur Integer.MAX_VALUE, aucune erreur ne sera signalée. La raison spécifique n'est pas connue, mais le compilateur optimisera le code pour que la même zone mémoire soit réellement utilisée à chaque fois. au lieu d'ouvrir une nouvelle zone mémoire à chaque fois
1. La première chose que vous devez comprendre est qu'il n'y a pas d'objet nommé s ici. Les s et i dans le code ne sont que des références à des objets, qui sont équivalents aux pointeurs en langage C. Ils pointent simplement vers cet objet. espace. d'un signe. 2. Chaque fois que vous effectuez une boucle dans une boucle for, vous déclarez une référence avec le même nom. Le compilateur peut alors distinguer ces références avec le même nom, donc peu importe le nombre de fois que vous effectuez une boucle, vous n'en avez en réalité qu'une. référence nommée 's'. Et il est initialisé dans la première boucle for, et chaque boucle suivante attribue une valeur à cette référence avec le même nom. 3. Si vous souhaitez voir le résultat de l'impression, placez system.out dans le domaine valide de la variable locale.
1. Ce code ne crée pas d'objet. Int est un type de données de base, pas un objet. 2. Ce code sera optimisé par le compilateur, et je suppose que le résultat peut être sous la forme de int s = 9; Vous pouvez le javaper pour voir
Tout d'abord, s est de type int, qui est un type de base, pas un type Object, donc il n'existe pas de "créer de nombreux objets s en double"
Ce qui est créé ici est une variable de type int. Cette variable est stockée sur la pile
Même si vous définissez le nombre de boucles sur Integer.MAX_VALUE, aucune erreur ne sera signalée. La raison spécifique n'est pas connue, mais le compilateur optimisera le code pour que la même zone mémoire soit réellement utilisée à chaque fois. au lieu d'ouvrir une nouvelle zone mémoire à chaque fois
Vous pouvez essayer Integer haha
1. La première chose que vous devez comprendre est qu'il n'y a pas d'objet nommé s ici. Les s et i dans le code ne sont que des références à des objets, qui sont équivalents aux pointeurs en langage C. Ils pointent simplement vers cet objet. espace. d'un signe.
2. Chaque fois que vous effectuez une boucle dans une boucle for, vous déclarez une référence avec le même nom. Le compilateur peut alors distinguer ces références avec le même nom, donc peu importe le nombre de fois que vous effectuez une boucle, vous n'en avez en réalité qu'une. référence nommée 's'. Et il est initialisé dans la première boucle for, et chaque boucle suivante attribue une valeur à cette référence avec le même nom.
3. Si vous souhaitez voir le résultat de l'impression, placez system.out dans le domaine valide de la variable locale.
1. Ce code ne crée pas d'objet. Int est un type de données de base, pas un objet.
.2. Ce code sera optimisé par le compilateur, et je suppose que le résultat peut être sous la forme de
int s = 9;
Vous pouvez le javaper pour voirParce que vous utilisez le compilateur Java.
D'où vient int ? Cela ne cesse de changer la valeur de la pile