ホームページ  >  記事  >  Java  >  ## コンパイルされた Java クラスのドル記号とその意味は何ですか?

## コンパイルされた Java クラスのドル記号とその意味は何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 09:18:02962ブラウズ

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

コンパイルされた Java クラスのドル記号について

Eclipse から生成された JAR ファイルを検査すると、ドル記号 ($) の後に数字が続くクラスに遭遇することがあります。この現象は、特に大規模なクラスで顕著であるため、クラスの複数のコンパイル済みバージョンを示しているのかどうかという疑問が生じています。

説明

クラス名内のドル記号の存在は、内部クラスを示しています。 。これらは、外部クラス内で定義された追加のクラスです。コンパイラは、各内部クラスに一意の番号を割り当てて区別します。

たとえば、次のコードは 2 つのネストされたクラスを持つ外部クラスを定義します。

<code class="java">public class Find {
    private class InnerClass1 {}
    private class InnerClass2 {}
}</code>

コンパイルすると、次のクラスが定義されます。ファイルが生成されます:

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

さらに、単一のステートメントで宣言およびインスタンス化されるクラスである匿名内部クラスも、ドル記号とそれに続く数字で表されます。

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

この例では、匿名内部クラスはクラス ファイルになります。 Main$1.class.

クラス サイズへの影響

最初の想定に反して、外部クラスのサイズは内部クラスが生成されるかどうかを決定しません。内部クラスは、外部クラスのサイズに関係なく、ネストされたクラスの存在のみに基づいて生成されます。

以上が## コンパイルされた Java クラスのドル記号とその意味は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。