Java.class文件大小Vs.Java文件大小

Java.class文件大小Vs.Java文件大小,java,Java,我制作了一个简单的java文件: class Hello { public static void main(String arg[]) { System.out.println("Hello"); } } 这个hello.java文件的大小是87字节,而类文件的大小是401字节 我不得不问,为了使类文件具有较大的大小,代码中添加了哪些内容 我不得不问,为了使类文件具有较大的大小,代码中添加了哪些内容 你的问题是建立在谬论上的。源代码不在.class文件中,因此

我制作了一个简单的java文件:

class Hello {
    public static void main(String arg[]) {
        System.out.println("Hello");
    }
}
这个hello.java文件的大小是87字节,而类文件的大小是401字节

我不得不问,为了使类文件具有较大的大小,代码中添加了哪些内容

我不得不问,为了使类文件具有较大的大小,代码中添加了哪些内容

你的问题是建立在谬论上的。源代码不在.class文件中,因此未“添加”任何内容。但是,大量内容被编译到.class文件中:

  • 类文件头,包括Java版本信息、类和包名称、超类、实现的接口、常量池大小和数据、字段计数和字段、方法计数和方法、属性计数和属性等
  • 包含字节码的方法区域

  • 有关详细信息,请参阅。

    ,您可以运行javap-p以及一些我不太熟悉的其他选项来查看类的完全反汇编。您应该做的第一件事是通过完全写出编译器为您填写的所有内容来比较各个苹果:(1)显式声明
    扩展java.lang.Object
    (2)显式包含无参数构造函数(3)完全限定所有引用(例如,
    java.lang.String
    )(4)字节码还包括任何方法调用的完整类名和签名,因此向方法调用添加一些强制转换:
    ((java.io.PrintStream)System.out).println((java.lang.String)“Hello”)(5)在方法调用和构造函数调用中显式使用
    return
    。有了这些,您的文件将增长到~200b。