Я собираюсь обновить установку tomcat с версии 6.0 до версии 8.5, а также модернизировать JVM с 6 по 8. Наш код Java теперь скомпилирован с java 6.Должен ли я всегда компилировать код Java с помощью последнего компилятора javac?
Я знаю, что запуск java-кода на последней JVM всегда является хорошей идеей с точки зрения производительности (не говоря уже о безопасности). Таким образом, некоторый код, скомпилированный с java 1.6, может работать быстрее на JVM 8 по сравнению с JVM 6.
Но как насчет компиляции? Получает ли кто-нибудь что-либо, компилируя код, написанный в java 6 с помощью компилятора java 8 (т. Е. Используются только функции java 6)? То есть код, написанный с целью компиляции с java 1.6, работает быстрее на JVM 8, когда код скомпилирован с java 8 (целевой 8), а не с java 6? Является ли байт-код из java 8 оптимизированным по сравнению с java 6?
И относительно целевого флага. Получается ли что-то, полученное путем компиляции кода java 6 с компилятором java 8, предназначенным для java 6 (когда код еще должен быть запущен на JVM 6), по сравнению с компиляцией кода с помощью компилятора java 6?
Java компилируется, один раз, запускается в любом месте. После его компиляции вам не нужно повторно компилировать его, чтобы воспользоваться новейшей JVM. Вы можете взять JAR для версии 1.0.2 и запустить его на Java 9 JVM, и он будет использовать все последние оптимизации. –