首页  >  文章  >  Java  >  为什么 Java 编译类有美元符号?

为什么 Java 编译类有美元符号?

Patricia Arquette
Patricia Arquette原创
2024-10-26 18:54:29921浏览

Why Do Java Compiled Classes Have Dollar Signs?

带有美元符号的 Java 编译类

Java 程序员经常在编译的类文件中遇到特殊的命名约定。一些类的类名呈现出奇怪的模式,后面跟着一个美元符号和一个数字。例如,您可能会看到如下文件:

  • Find$1.class
  • Find$2.class
  • Find$3.class
  • Find。 class

深入探究原因

与普遍看法相反,班级的规模不会触发此行为。答案就在内部类。当类包含内部类时,编译器会为这些内部类生成单独的类文件。文件名遵循以下模式:

OuterClass.class
OuterClass$InnerClass.class

匿名内部类

匿名内部类在没有自定义名称的情况下定义,并分配有数字。这解释了“Find$1.class”和类似的文件名。

示例

考虑以下代码片段:

public class OuterClass {
    class InnerClass {
    }

    Serializable anonymous = new Serializable() {
    };
}

编译器将生成以下类文件:

  • OuterClass.class
  • OuterClass$InnerClass.class
  • OuterClass$1.class

考虑匿名类吗?

匿名内部类的使用一直存在争议。有些人认为这是一种代码味道,而另一些人则认为它在某些情况下是否合适。最终,使用它们的决定取决于具体的设计要求。

以上是为什么 Java 编译类有美元符号?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn