java 10 Flashcards
var
Можно не указывать тип локальной переменной. Ключевое слово var позаботится об этом: var data = new ArrayList();
Консолидация леса JDK в единый репозиторий
Объединение многочисленных репозиториев леса JDK в единый репозиторий, чтобы упростить разработку. К примеру, в Java 9 было 8 репозиториев. Среди них: root, hotspot, jaxp, jdk, langtools, corba, jaxws, nashorn. В Java 10 все объединено для упрощения и выполнения атомарных коммитов.
Garbage-Collector Interface
Улучшает изоляцию исходного кода от разных сборщиков мусора, вводя чистый интерфейс сборщика мусора (GC). С таким нововведением появится возможность интегрировать альтернативные сборщики быстро и «безболезненно».
Parallel Full GC для G1
Еще один апгрейд сборщика мусора. С ним G1 сможет производить сборку мусора сразу в нескольких потоках (подобно Parallel GC). Ранее это происходило строго в одном. Кроме того, параметр XX:ParallelGCThreads позволит настраивать количество потоков.
Application Class-Data Sharing
Чтобы улучшить запуск и отслеживание, расширяется существующая функция разделения классов (CDS), позволяя классам приложений размещаться в общем архиве.
Class-Data Sharing работает с файлами *class. Основные функции – выборка классов, их обработка и сжатие в архив. Так и память экономится, и сокращается время загрузки программ. Разница в том, что раньше все ограничивалось одним загрузчиком bootstrap, а в Java 10 появится возможность загружать архивы с прочими загрузчиками и классами.
Thread-Local Handshakes
Способ выполнения обратного вызова по Threads без выполнения глобальной точки безопасности VM. Делает возможной и не затратной остановку отдельных потоков вместо всех сразу или вообще ни одного.
Heap Allocation on Alternative Memory Devices
Распределение кучи на альтернативных запоминающих устройствах: позволяет виртуальной JVM выделять кучу (heap) и размещать ее в прочих типах памяти (например, на альтернативном запоминающем устройстве NV-DIMM, указанном пользователем).
Проект Graal
новый JIT-компилятор, который подарит JVM лучшую производительность, чем это было в старой версии, написанной на C++ (согласно проекту Metropolis, большую часть JVM перепишут на Java).