ホームページ >Java >&#&チュートリアル >## コンパイルされた Java クラスのドル記号とその意味は何ですか?
Eclipse から生成された JAR ファイルを検査すると、ドル記号 ($) の後に数字が続くクラスに遭遇することがあります。この現象は、特に大規模なクラスで顕著であるため、クラスの複数のコンパイル済みバージョンを示しているのかどうかという疑問が生じています。
クラス名内のドル記号の存在は、内部クラスを示しています。 。これらは、外部クラス内で定義された追加のクラスです。コンパイラは、各内部クラスに一意の番号を割り当てて区別します。
たとえば、次のコードは 2 つのネストされたクラスを持つ外部クラスを定義します。
<code class="java">public class Find { private class InnerClass1 {} private class InnerClass2 {} }</code>
コンパイルすると、次のクラスが定義されます。ファイルが生成されます:
さらに、単一のステートメントで宣言およびインスタンス化されるクラスである匿名内部クラスも、ドル記号とそれに続く数字で表されます。
<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 サイトの他の関連記事を参照してください。