Спецификация JVM 10 с различиями?

Кто-нибудь знает, есть ли версия спецификаций Java 10 и JVM 10 с отличиями от предыдущей версии? Для Java 8 и Java 9 были спецификации с diff, и очень сложно увидеть, что именно изменилось в противном случае.


person Antimony    schedule 24.03.2018    source источник


Ответы (2)


Чтобы узнать о различиях между Java 9 и Java 10 (18.3), вы можете загрузить «JSR-000383 Java SE 10 (18.3) Final Release Annex 3 for Evaluation» по следующей ссылке:

Имейте в виду, что вы должны принять Лицензионное соглашение на программное обеспечение, чтобы загрузить его.

Этот архив содержит различия как для JLS, так и для JVMS.

person Jacob G.    schedule 24.03.2018
comment
интересно но это не работает, я принимаю лицензию и тут же выкидывает мол надо принять лицензию :) - person Eugene; 24.03.2018
comment
@Eugene Lol, какой браузер ты используешь? У меня он отлично работает в Firefox, и вам не нужно входить в систему. - person Jacob G.; 24.03.2018
comment
@Eugene Во-вторых, загрузка работает нормально (надеюсь, не в зависимости от браузера, я использую Chrome на Mac) после принятия лицензии. - person Naman; 24.03.2018

Я знаю, что нового в Java 10, давайте кратко рассмотрим.

<сильный>1. Определение типа локальной переменной (JEP 286) Подобно JavaScript, Kotlin и Scala, теперь в Java также будет ключевое слово var, позволяющее объявлять локальную переменную без указания ее типа. Пример: var name = "Java"

<сильный>2. Интерфейс сборщика мусора (JEP 304). Он увеличивает изоляцию кода различных сборщиков мусора и представляет для них чистый интерфейс. Это означает, что проще исключить сборщик мусора из сборки JDK, а также упростить добавление нового GC без влияния на кодовую базу.

<сильный>3. Параллельный полный сборщик мусора для G1 (JEP 307) Улучшает задержки G1 в наихудшем случае, делая полный сборщик мусора параллельным. Если вы помните из выпуска Java 9, G1 был сделан сборщиком мусора по умолчанию для JVM, полный ГК. Но когда параллельные коллекции не могут освободить память достаточно быстро, они в конечном итоге возвращаются к полному сборщику мусора, и это создает проблему. можно использовать то же количество потоков, что и в параллельных коллекциях, для повышения общей производительности.

<сильный>4. Выделение кучи на альтернативных устройствах памяти (JEP 316) Позволяет виртуальной машине HotSpot выделять кучу объектов Java на альтернативном устройстве памяти, указанном пользователем. Например, эта функция позволяет назначать процессы с более низким приоритетом для использовать память NV-DIMM и вместо этого выделять только процессы с более высоким приоритетом для DRAM в среде с несколькими JVM.

<сильный>5. Объединение леса JDK в единый репозиторий (JEP 296) Он объединит многочисленные репозитории леса JDK в один репозиторий.

<сильный>6. Экспериментальный компилятор JIT на основе Java (JEP 317) позволяет использовать JIT-компилятор Graal на основе Java в качестве экспериментального JIT-компилятора на платформе Linux/x64. Если вы помните, Graal уже был добавлен в Java. 9, но теперь вы можете включить его со следующими аргументами JVM:

-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler

<сильный>7. Локальные рукопожатия потока (JEP 312) улучшили производительность виртуальной машины, сделав возможным выполнение обратного вызова в потоках приложения без создания глобальной точки сохранения виртуальной машины. Это означало бы, что JVM может останавливать отдельные потоки, а не только все из них.

<сильный>8. Удалите инструмент генерации собственных заголовков (JEP 313). Он удалит инструмент javah из JDK, отдельный инструмент для создания файлов заголовков при компиляции кода JNI, поскольку это можно сделать с помощью javac.

Источник/Источник: Функции Java 10

person Vijay Barot    schedule 17.08.2018