>  기사  >  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 파일을 검사할 때 사용자는 때때로 달러 기호($) 뒤에 숫자가 오는 클래스를 발견합니다. 특히 대규모 클래스에서 눈에 띄는 이 현상은 클래스의 여러 컴파일된 버전을 나타내는지 여부에 대한 질문을 촉발했습니다.

설명

클래스 이름에 달러 기호가 있으면 내부 클래스를 의미합니다. . 이는 외부 클래스 내에 정의된 추가 클래스입니다. 컴파일러는 각 내부 클래스에 고유 번호를 할당하여 구별합니다.

예를 들어 다음 코드는 두 개의 중첩 클래스가 있는 외부 클래스를 정의합니다.

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.