Maison > Java > javaDidacticiel > ## Que sont les signes dollar dans les classes Java compilées et que signifient-ils ?

## Que sont les signes dollar dans les classes Java compilées et que signifient-ils ?

Susan Sarandon
Libérer: 2024-10-26 09:18:02
original
1106 Les gens l'ont consulté

## What Are Dollar Signs in Compiled Java Classes and What Do They Mean?

Comprendre les signes dollar dans les classes Java compilées

Lors de l'inspection des fichiers JAR générés à partir d'Eclipse, les utilisateurs rencontrent parfois des classes avec des signes dollar ($), suivis de chiffres. Ce phénomène, particulièrement visible dans les classes plus nombreuses, a soulevé des questions quant à savoir s'il indique plusieurs versions compilées de la classe.

Explication

La présence de signes dollar dans les noms de classe signifie classes internes . Ce sont des classes supplémentaires définies au sein des classes externes. Le compilateur attribue un numéro unique à chaque classe interne pour les différencier.

Par exemple, le code suivant définit une classe externe avec deux classes imbriquées :

<code class="java">public class Find {
    private class InnerClass1 {}
    private class InnerClass2 {}
}</code>
Copier après la connexion

Lors de la compilation, la classe suivante les fichiers seront générés :

  • Find.class
  • Find$InnerClass1.class
  • Find$InnerClass2.class

De plus, les classes internes anonymes, qui sont des classes déclarées et instanciées dans une seule instruction, sont également représentées par des signes dollar suivis de chiffres.

<code class="java">public class Main {
    public static void main(String[] args) {
        new Thread() { // Anonymous inner class
            // Override run() method
        }.start();
    }
}</code>
Copier après la connexion

Dans cet exemple, la classe interne anonyme donnera lieu à un fichier de classe. nommé Main$1.class.

Implication pour la taille de la classe

Contrairement à l'hypothèse initiale, la taille de la classe externe ne détermine pas si les classes internes seront générées. Les classes internes sont générées uniquement en fonction de la présence de classes imbriquées, quelle que soit la taille de la classe externe.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal