Maison  >  Article  >  Java  >  Pourquoi les classes compilées Java dans les fichiers JAR ont-elles des signes dollar et des chiffres dans leurs noms de fichiers ?

Pourquoi les classes compilées Java dans les fichiers JAR ont-elles des signes dollar et des chiffres dans leurs noms de fichiers ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-25 11:01:02658parcourir

Why do Java compiled classes in JAR files have dollar signs and numbers in their file names?

Classes compilées Java présentant des signes dollar dans les noms de fichiers

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn