Випуск Java SE 13

Після шести місяців розробки компанія Oracle випустила платформу JavaSE 13 (Java Platform, Standard Edition 13), як еталонної реалізації якої використовується відкритий проект OpenJDK. У Java SE 13 збережено зворотну сумісність з минулими випусками платформи Java, всі раніше написані Java-проекти без змін будуть працездатні при запуску під керуванням нової версії. Готові для встановлення складання Java SE 13 (JDK, JRE та Server JRE) підготовлено для Linux (x86_64), Solaris, Windows та macOS. Розроблена у рамках проекту OpenJDK еталонна реалізація Java 13 повністю відкрита під ліцензією GPLv2 з винятками GNU ClassPath, що дозволяють динамічне зв'язування з комерційними продуктами.

Java SE 13 віднесено до категорії випусків із звичайним терміном підтримки, оновлення для якого будуть випускатися до наступного випуску. Як гілка з тривалим терміном підтримки (LTS) слід використовувати Java SE 11, оновлення для якого будуть випускатися до 2026 року. Минула LTS-гілка Java 8 підтримуватиметься до грудня 2020 року. Наступний LTS-реліз заплановано на вересень 2021 року. Нагадаємо, що починаючи з випуску Java 10 проект перейшов на новий процес розробки, який передбачає більш короткий цикл формування нових релізів. Нова функціональність тепер розвивається в одній master-гілці, що постійно оновлюється, в яку включаються вже готові зміни і від якої раз на шість місяців відгалужуються гілки для стабілізації нових випусків. На березень наступного року заплановано випуск Java 14, попередні збирання якого вже доступні для тестування.

З нововведень Java 13 можна зазначити:

  • Додана підтримка динамічного доповнення архівів CDS (Class-Data Sharing), що забезпечують спільний доступ додатків до загальних класів. За допомогою CDS загальні класи можуть розміщуватися в окремому спільно архіві, що дозволяє прискорити запуск додатків і знизити накладні витрати. У новій версії додано кошти для динамічного архівування класів після закінчення програми. Поміщені в архів класи включають усі завантажені в процесі роботи програми класи та супутні бібліотеки, які були відсутні в початковому базовому CDS-архіві;
  • У збирач сміття ZGC (Z Garbage Collector) додано підтримка повернення невикористовується пам'яті операційній системі;
  • Задіяна перероблена реалізація API Legacy Socket (java.net.Socket та java.net.ServerSocket), яка простіше у супроводі та налагодженні. Крім того, запропоновану реалізацію простіше адаптуватиме для роботи з новою системою потоків у просторі користувача (fibers), що розвиваються в рамках проекту Loom;
  • Продовжено розвиток нової форми виразів "switch". Додана експериментальна (Preview) можливість використання "switch" у формі не тільки оператора, але і як висловлювання. Наприклад, тепер можна використовувати конструкції виду:

    int numLetters = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY -> 7;
    case THURSDAY, SATURDAY -> 8;
    case WEDNESDAY -> 9;
    };

    або

    System.out.println (
    switch (k) {
    case 1 -> "one"
    case 2 -> «two»
    default -> «many»
    }
    );

    У майбутньому з урахуванням цієї можливості планується реалізувати підтримку зіставлення за шаблонами;

  • Додана експериментальна підтримка текстових блоків - нової форми рядкових літералів, що дозволяють включати в вихідний код багаторядкові текстові дані без застосування в них екранування символів та зберігаючи вихідне форматування тексту в блоці. Обрамлення блоку здійснюється трьома подвійними лапками. Наприклад, замість виразу

    String query = «SELECT 'EMP_ID', 'LAST_NAME' FROM 'EMPLOYEE_TB'\n» +
    "WHERE `CITY` = 'INDIANAPOLIS'\n" +
    ORDER BY `EMP_ID`, `LAST_NAME`;\n";

    тепер можна застосовувати конструкцію:

    String query = """
    SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
    WHERE `CITY` = 'INDIANAPOLIS'
    ORDER BY `EMP_ID`, `LAST_NAME`;
    """;

  • Закрито 2126 звітів про помилки, з яких 1454 усунуті співробітниками Oracle, а 671 сторонніми учасниками, з яких шоста частина змін внесена незалежними розробниками, а решта представників таких компаній, як IBM, Red Hat, Google, Loongson, Huawei, ARM та SAP.

Випуск Java SE 13

Джерело: opennet.ru

Додати коментар або відгук