REPL — Read-Eval-Print Loop. JShell даёт Java интерактивную оболочку: пишете код, сразу видите результат, без компиляции через javac. Запуск JShell Команды JShell (/help) /help | Type a Java language expression, statement, or declaration. | Or type one of the following commands: | /list [|-all|-st
В Java 9 появился новый компонент — модуль. Модуль — это именованный, самодокументируемый набор кода и данных. Возможности модульной системы Link-time — новый опциональный этап между compile-time и run-time. Инструмент jlink собирает набор модулей в оптимизированный кастомный runtime-образ. javac,
Локальная установка Java SE скачивается бесплатно. Запустите установщик (.exe на Windows) и настройте переменные окружения. Windows 2000/XP/7/10/11 Предположим, Java в c:\Program Files\java\jdk. Правый клик на «Этот компьютер» → «Свойства». Вкладка «Дополнительно» → «Переменные среды». Редактируйте
Java 9 (JDK 1.9) — мажорный релиз, вышедший 21 сентября 2017 года. Основные цели: Сделать JDK и Java SE модульными для масштабирования на малых устройствах. Повысить безопасность JDK и реализаций Java. Упростить сборку и поддержку библиотек и крупных приложений для Java SE и EE. Спроектировать стан
JEP 312 — Thread-Local Handshakes В JDK 10 добавлена опция JVM -XX:ThreadLocalHandshakes (работает на x64 и SPARC). Опция улучшает производительность VM: позволяет выполнять callback на потоках приложения без глобального VM safepoint. То есть JVM может остановить отдельный поток, не останавливая все
JEP 319 — Root Certificates Раньше хранилище cacerts в OpenJDK было пустым. Для работы TLS и других протоколов безопасности нужен набор доверенных корневых сертификатов (CA). Oracle открыла свои корневые сертификаты через программу Oracle JAVA SE Root CA. Теперь OpenJDK-билды включают набор корневых
JEP 296 — Consolidated JDK Forest as Single Repository В JDK 9 код был разделён на 8 модульных репозиториев (repos): root corba hotspot jaxp jaxws jdk langtools nashorn Структура выглядела так: $ROOT/jdk/src/java.base ... $ROOT/langtools/src/java.compiler ... С Java 10 все леса (forests) объединен
JEP 316 — Heap Allocation on Alternative Memory Devices Java 10 позволяет указать альтернативное устройство памяти (например, NV-DIMM — энергонезависимую память) для размещения Java-кучи. Новая опция: -XX:AllocateHeapAt=<путь_к_файловой_системе> Пример: -XX:AllocateHeapAt=~/etc/heap Опция прин
JEP 314 — Unicode Language-Tag Extensions Java 7 добавила поддержку BCP 47 language tags, но Unicode locale extensions были ограничены календарём и числами. В Java 10 java.util.Locale и связанные классы обновлены для поддержки дополнительных расширений per LDML spec: cu — типы валют (currency types
JEP 304 — Garbage-Collector Interface До Java 10 реализации GC были разбросаны по кодовой базе и сложны для замены. Java 10 вводит чистый интерфейс сборщика мусора, позволяя подключать альтернативные GC-реализации и изолировать код от конкретных алгоритмов сборки мусора. JEP 307 — Parallel Full GC f
JEP 310 — Application Class-Data Sharing При запуске JVM загружает классы в память. При множестве JAR-файлов возникает заметная задержка при первом запросе. В бессерверной архитектуре (serverless) это увеличивает cold-start время. AppCDS позволяет поместить классы приложения в общий архив, уменьшая
JEP 317 — Experimental Java-Based JIT Compiler Традиционный JIT-компилятор написан на C++. Java 10 позволяет включить экспериментальный JIT-компилятор Graal, написанный на Java. Graal использует JVMCI (JVM Compiler Interface), введённый в Java 9. Graal доступен и в Java 9, но в Java 10 его можно вкл
JDK 10 пометил к удалению (forRemoval=true) следующие API и функции: SNMP Monitoring Support — модуль jdk.snmp для SNMP-мониторинга JVM deprecated и помечен к удалению. Классы java.security — Certificate, Identity, IdentityScope, Signer deprecated, forRemoval=true. javax.security.auth.Policy — depr
JDK 10 удалил несколько устаревших API, функций и опций. LookAndFeel: Nimbus и Aqua Старый код должен мигрировать на новый синтаксис: LookAndFeelСтарый кодНовый код Nimbusjavax.swing.UIManager.setLookAndFeel(com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel)UIManager.setLookAndFeel(javax.swing.pl
JDK 10 добавил более 70 новых API и опций. Основные улучшения: Optional.orElseThrow() Новый метод orElseThrow() в java.util.Optional — предпочтительная альтернатива get() (бросает NoSuchElementException, если значение отсутствует). API для создания неизменяемых коллекций Статический метод copyOf()
JEP 286 — Local Variable Type Inference Самое заметное изменение языка в Java 10 — возможность объявлять локальные переменные через var без явного указания типа. Компилятор выводит тип из инициализатора. Ограничение: только для локальных переменных. Старый способ String name = Welcome to tutorialspo
JEP 322 — Time-Based Release Versioning С Java 10 Oracle ввела строгую временную модель версионирования. Мажорные релизы выходят каждые 6 месяцев (в марте и сентябре). Релизы делятся на три категории: Feature Release — новые языковые фичи, JVM-функции, API, удаление/депрекация API. Время фиксирован
Онлайн-компилятор (Live Demo) Мы настроили онлайн-среду для Java, чтобы вы могли компилировать и запускать примеры прямо в браузере. Это даёт уверенность в изучаемом материале и возможность экспериментировать. В правом верхнем углу блоков кода доступна кнопка Live Demo. Пример для проверки: public c
Java 10 — важный релиз в-cadence выпуска Java, вышедший 20 марта 2018 года. С Java 10 Oracle изменила модель выпуска: теперь новые версии выходят каждые 6 месяцев, а для Oracle Java SE продуктов введена модель LTS (Long Term Support — длительная поддержка). Каждый релиз содержит одну или две главные
Типы комментариев в Java Java поддерживает три вида комментариев: ТипСинтаксисОписание Однострочный// комментарийИгнорируется компилятором до конца строки. Многострочный/* комментарий */Игнорируется всё между /* и */. Не вкладываются. Документационный (Doc-комментарий)/** документация */Обрабатыва
java