Eclipse에서 생성된 JAR 파일을 검사할 때 사용자는 때때로 달러 기호($) 뒤에 숫자가 오는 클래스를 발견합니다. 특히 대규모 클래스에서 눈에 띄는 이 현상은 클래스의 여러 컴파일된 버전을 나타내는지 여부에 대한 질문을 촉발했습니다.
클래스 이름에 달러 기호가 있으면 내부 클래스를 의미합니다. . 이는 외부 클래스 내에 정의된 추가 클래스입니다. 컴파일러는 각 내부 클래스에 고유 번호를 할당하여 구별합니다.
예를 들어 다음 코드는 두 개의 중첩 클래스가 있는 외부 클래스를 정의합니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!