java - for循环造对象,造了很多重复的s对象,为什么不报错?
大家讲道理
大家讲道理 2017-04-18 09:51:15
0
7
552

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(7)
迷茫
// 循环执行 10 次,会产生 10个 {} 代码块,互不冲突
for (int i = 0;i < 10;i ++) { // ↓
    int s = i; // 中间这一部分是 s 的作用域,出了作用域 s 是不存在的
} // ↑
刘奇
  1. 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"

  2. Ce qui est créé ici est une variable de type int. Cette variable est stockée sur la pile

  3. 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.

Peter_Zhu

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

.
刘奇

Parce que vous utilisez le compilateur Java.

刘奇

D'où vient int ? Cela ne cesse de changer la valeur de la pile

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal