


## Que sont les signes dollar dans les classes Java compilées et que signifient-ils ?
Oct 26, 2024 am 09:18 AMComprendre 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>
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>
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Top 4 frameworks JavaScript en 2025: React, Angular, Vue, Svelte

Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation?

Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance?

Node.js 20: Boosts de performances clés et nouvelles fonctionnalités

Iceberg: L'avenir des tables de Data Lake

Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave?

Comment puis-je implémenter des techniques de programmation fonctionnelle en Java?

Spring Boot SnakeyAml 2.0 CVE-2022-1471 Issue fixe
