Ответ 1
Есть несколько моментов, которые вы должны учитывать:
- Байт-код конкатенации строк несколько раз менялся. Это уже не ошибка для плохой производительности. Тем не менее, я не уверен, что это происходит из рефакторинга представления байт-кода или изменения виртуальной машины.
- Старая (система) JDK/JRE может открывать угрозы безопасности на машине разработки. Если разработчик использует устаревшую JDK/JRE, он может быть уязвим для вредоносного программного обеспечения, которое он выполняет.
- Устаревшая версия java на стороне клиента подвергает пользователя рискам безопасности. Если вы разрешаете пользователю использовать старую версию Java, они это сделают. Это может представлять угрозу безопасности.
- Java 6 больше не поддерживается публикой. Проблема с безопасностью что пользователь не информирован о том, что его версия java должна быть обновлена, и он не принужден это делать. Имейте в виду, что Java находится в списке уязвимостей 3-го списка.
-
Вы можете использовать функции Java 1.7 при компиляции для цели 1.6.. Используя-source 1.7
и-target 1.6
, вы можете использовать языковые функции, такие какint i = 0b011
- Инструменты, поставляемые с вашим JDK, обновляются. Там могут быть новые инструменты для разработки java-приложения, например. в какой-то момент в JDK был добавлен java VisualVM.
Глядя на этот список, я думаю, что плюсы использования текущего JDK перевешивают преимущества использования старого.
ИЗМЕНИТЬ: Я немного исследовал, и теперь я предлагаю установить JDK, который подходит для вашей целевой версии. В любом случае вам нужен JDK, когда вы выполняете кросс-компиляцию из-за пути загрузки bootstrap/ext. См. Как перекрестно скомпилировать более старые версии платформы для получения дополнительной информации. На этом сайте также указывается, что существуют различия в компиляции между разными JDK (от второго до последнего абзаца) и предлагается использовать JDK, относящийся к вашей целевой версии (последний абзац). Также актуальной может быть javac documentation.