¿Por qué una clase Java compila de manera diferente con una línea en blanco?


Tengo la siguiente clase Java

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

Cuando compilo este archivo y corro un sha256 en el archivo de clase resultante obtengo

9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff  HelloWorld.class

Luego modifiqué la clase y agregué una línea en blanco como esta:

public class HelloWorld {

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

De nuevo ejecuté un sha256 en la salida esperando obtener el mismo resultado, pero en su lugar obtuve

11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f  HelloWorld.class

He leído en este artículo de TutorialsPoint que:

Una línea que contiene solo espacio en blanco, posiblemente con un comentario, se conoce como línea en blanco, y Java totalmente lo ignora.

Así que mi pregunta es, dado que Java ignora las líneas en blanco, ¿por qué el código de bytes compilado es diferente para ambos programas?

Es decir, la diferencia en las clases es que un carácter de fin de transmisión (^D) se sustituye por un carácter de fin de texto (^C).


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52