Компилятор, например, JDK 6 Update 7, может выводить немного иной байт-код, чем компилятор JDK 6 Update 20, но, поскольку это обе Java 6, файлы классов будут полностью совместимы - вы сможете запускать код, скомпилированный Обновление 20 на Обновление 7 без проблем.
Между основными версиями Java (например, Java 5 против Java 6) могут быть изменения, так что код, скомпилированный в более новой версии, не будет работать в более старой версии. Например, для Java 7, скорее всего, будет новая инструкция invokedynamic . Файлы классов, содержащие эту инструкцию, не будут работать в более старых версиях Java.
Такие большие изменения, однако, никогда не делаются между версиями обновления.