为什么两个仅在注释中不同的java文件会产生不同的类文件?

Ses*_*i R 3 java comments class

我有一个名为One.java的文件,它只有一条注释行.我编译它来生成类文件One.class并将其重命名为old.class.然后,我打开了One.java,引入了另外五条注释行并再次编译它以生成One.class.两个类文件都有相同的大小,但当我在它们上运行diff时: diff One.class old.class 我得到了输出:

Binary files One.class and old.class differ
Run Code Online (Sandbox Code Playgroud)

这是我的One.java文件:

// One.java
class One
{
    public static void main(String [] args)
    {
        System.out.println("Hello Java world");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我修改过的One.java(附加注释行):

// One.java
// One.java
// One.java
// One.java
// One.java
// One.java
class One
{
    public static void main(String [] args)
    {
        System.out.println("Hello Java world");
    }
}
Run Code Online (Sandbox Code Playgroud)

我在运行High Sierra的iMac上使用Java SE 10.

Ell*_*sch 6

调试符号; 基本上代码包括行号和其他用于调试的元数据.你可以用javap -v One.class和自己检查一下javap -v old.class