Question :
Dans les fichiers JAR exportés créés à l'aide d'Eclipse, certains les fichiers de classe affichent le nom de la classe suivi d'un signe dollar et d'un nombre. Par exemple :
<code class="java">Find.class Find.class Find.class Find.class</code>
Est-ce une conséquence des limitations de taille de code, où les classes plus grandes sont divisées en plusieurs classes plus petites ? Des recherches approfondies en ligne n’ont donné aucune information pertinente. Quelqu'un peut-il fournir une explication ?
Réponse :
Ces fichiers de classe supplémentaires sont le résultat de classes internes au sein de la classe d'origine. Les classes internes sont imbriquées dans les classes externes et sont déclarées à l'aide du mot-clé class :
<code class="java">public class OuterClass { public class InnerClass { // Nested code } }</code>
Lorsqu'une classe contenant des classes internes est compilée, des fichiers de classe distincts sont générés pour chaque classe interne, en suivant la convention de dénomination OuterClass$InnerClass. .classe. Les classes internes anonymes (celles sans nom) se voient attribuer des identifiants numériques, ce qui donne des noms de fichiers comme OuterClass$1.class.
Contrairement à la croyance populaire, la taille de la classe d'origine n'influence pas la création de plusieurs fichiers de classe. . La présence de classes internes est la seule raison de ce comportement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!