首页  >  文章  >  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