なぜJavaクラスは、空白行とは異なるコンパイルしていますか?

KNejad:

私は、次のJavaクラスを持っています

public class HelloWorld {
  public static void main(String []args) {
  }
}

私は、このファイルをコンパイルしたクラスファイルにSHA256を実行するとI GET

9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff  HelloWorld.class

次の私は、クラスを変更し、このような空白行を追加しました:

public class HelloWorld {

  public static void main(String []args) {
  }
}

再び私は同じ結果を得ることを期待出力にSHA256を走ったが、代わりにI GOT

11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f  HelloWorld.class

私が上で読んだ本TutorialsPointの記事:ということ

おそらくコメントで、空白のみを含む行は、空白行として知られており、Javaは完全にそれを無視します。

Javaは両方のプログラムのために別のバイトコードにコンパイルされている理由の空白行を無視しますので、だから私の質問は、ありますか?

つまりにおけるものの違いバイトが置き換えられているバイト。HelloWorld.class0x030x04

フェデリコクレズCulloca:

基本的には、行番号は、あなたのソースコードは、あなたがやった方法を変更した場合ので、あなたの方法は異なるラインで始まり、コンパイル済みのクラスが違いを反映して、デバッグのために保存されています。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=37246&siteId=1