Идентичные исходники Java компилируются в двоичные классы

Может кто-нибудь объяснить, как идентичные исходники Java могут в конечном итоге компилироваться вдвоичный файлы разных классов?

Вопрос возникает из следующей ситуации:

У нас есть довольно большое приложение (более 800 классов), которое было разветвлено, реструктурировано и реинтегрировано обратно в магистраль. Перед реинтеграцией мы объединили магистраль в ветку, что является стандартной процедурой.

Конечным результатом был набор каталогов с источниками ветвлений и набор каталогов с магистральными источниками. Используя Beyond Compare, мы смогли определить, что оба набора источников были идентичны. Однако при компиляции (тот же JDK используя maven, размещенный в IntelliJ v11), мы заметили, что около дюжины файлов классов были разными.

Когда мы декомпилировали исходный код для каждой пары очевидно разных файлов классов, мы получили один и тот же исходный код Java, поэтому с точки зрения конечного результата это некажется, не имеет значения. Но почему некоторые файлы отличаются?

Благодарю.

Дополнительная мысль:

Если maven / javac компилирует файлы в другой последовательности, может ли это повлиять на конечный результат?

Ответы на вопрос(5)

Ваш ответ на вопрос