Sun за эти годы внесли некоторые изменения в соглашения об именах для своего языка программирования. Изначально у вас был jdk1.1 и так далее. На jdk1.2 они решили изменить это на Java 2. Поэтому вы увидите несколько старых книг о Java 2.
Затем по какой-то таинственной причине он вернулся к jdk1.3, затем к jdk1.4. Когда был выпущен jdk1.5, они приложили немало усилий, чтобы снова изменить имена. Итак, у нас была Java 5. Поскольку они решили придерживаться этого, у вас есть следующее:
jdk1.5 = Java 5
jdk1.6 = Java 6
jdk1.7 = Java 7
и (возможно) и так далее.
Так что, надеюсь, это объясняет эту часть. В вашем вопросе Java6 == Java 1.6 == JDK 6 == JDK 1.6.
Что касается JVM против JRE. JRE содержит JVM, а также библиотеки классов и любые другие инструменты, необходимые для запуска вашей Java-программы. JVM - это просто программа, которая интерпретирует ваш байт-код и выполняет его на хост-компьютере.