Long term support java

Первая информация о JDK 21: что принесет следующий LTS релиз?

Пока мы все с нетерпением ждем скорого выхода JDK 20, список функций, которые появятся в JDK 21 этой осенью, также постепенно уточняется.

Начнем с JEP, которые уже были официально предложены в рамках осеннего релиза. Так, все указывает на то, что мы получим там предварительную версию шаблонов строк (String Templates). Их цель — стать расширением текстовых блоков, представленных в JDK 15. Шаблоны строк упрощают их заполнение (а также обычных строк) динамическими значениями.

Чтобы лучше представить это, посмотрим на один пример из JEP:

String name = "Joan Smith"; String phone = "555-123-4567"; String address = "1 Maple Drive, Anytown"; String json = STR.""" < "name": "\", "phone": "\", "address": "\" > """;

Также возможно передавать и целые выражения:

 int x = 10; int y = 20; String s = STR."\ + \ = \"; // 10 + 20 = 30 

Все это дело основано на так называемых процессорах, в приведенных выше примерах использовался STR. , который просто выполняют интерполяцию.

Читайте также:  Variable not null python

В самом JDK также появился процессор FMT. , который позволяет выполнять дополнительное форматирование, например, определять десятичную точность float . Пользователь также сможет определить пользовательские процессоры. Получившийся механизм выглядит очень гибким и выходит далеко за рамки простого заполнения строк переменными.

Еще одним уже анонсированным дополнением является JEP 431: Sequenced Collections. До сих пор в JDK не было интерфейса, который мог бы определять коллекции с элементами в четко определенном порядке, обеспечивая при этом удобную итерацию вперед и назад по элементам. По этой причине, в основном, каждая существующая коллекция подходила к этой теме по-разному:

Поэтому в JDK появится интерфейс, основанный на реализации Deque:

interface SequencedCollection extends Collection  < SequencedCollectionreversed(); void addFirst(E); void addLast(E); E getFirst(); E getLast(); E removeFirst(); E removeLast(); >

В дополнение к улучшенной поддержке операций над первым и последним элементами, также благодаря внедрению метода reversed() станет проще выполнять итерации по коллекции в обратном порядке.

Чтобы закрыть тему, я довольно улыбнулся, увидев цитату Сёрена Кьеркегора в свежей сводке JEP

Однако это еще не все — все указывает на то, что мы также получим еще два JEP в JDK 21 — Record Patterns и Pattern Matching for Switch.

Как отмечается на Reddit /r/java, хотя оба JEP все еще остаются в Draft, примеры кода в них явно относятся именно к JDK 21. Так что, похоже, «осень будет принадлежать» Project Amber.

И раз уж мы затронули тему Pattern Matching и деконструкции записей (record deconstruction), разработчики JDK не планируют останавливаться на достигнутом. На прошлой неделе Брайан Гетц опубликовал анализ паттернов деконструкции о возможности реализации деконструкции объектов, отличных от записей.

В этом документе предлагается ввести деконструкторы, которые являются обобщением решений, созданных для записей.

Они должны позволять выполнение деструктукции любого класса, в котором они объявлены. Деконструкторы должны быть определены явно и требуют точного соответствия.

Приведенный ниже пример показывает, как они могут выглядеть, хотя Брайан Гетц предупреждает, что все последующее предназначено только для иллюстрации и не должно считаться окончательным или каким-либо еще.

class Point < final double x, y; public Point(double x, double y) < this.x = x; this.y = y; >public matcher Point(double x, double y) < x = this.x; y = this.y; >>

Таким образом, они должны быть чем-то вроде обратных конструкторов, потому что они должны собирать значения полей данного объекта и представлять их как легко извлекаемые из класса.

Просто для протокола (хех) также стоит упомянуть, что JDK 21 будет LTS релизом (Long-Time Support — релизом с длительной поддержкой).

Так что будем надеяться, что он будет максимально насыщен функционально, потому что это будет JDK, рекомендованный для производственного использования на долгие годы.

Возможно, именно этот релиз убедит еще одну группу пользователей JDK в том, что стоит перейти на новую версию.

Источники

Источник

Java LTS Version Roadmap and Guide

People often download and install the latest version of Java, rather than the latest Java LTS version. In most cases, especially if it is on a server you probably want to be using a LTS version of java. Every major version of java is not a Java LTS version, for example Java 18, is not.

So what is a Java LTS Version?

LTS stands for Long Term Support, this means that the java vendor (for example Oracle) will support it for a long time, several years. This includes patching it for security issues.

What is the latest Java LTS Version?

As of this writing Java 17 is the latest LTS version of java. Java 17 LTS was released in September 2021 and will be supported by Oracle until September 2026. Extended support for Java 17 LTS goes through September 2029.

How many years is a Java LTS version supported for?

If we look at Java 11 premiere support 5 years, and extended support is for 8 years. Eight years of support for a software version is a long time, hence why we call it LTS!

Java 11 LTS was released in September 2018 and will be supported by Oracle until September 2023. Extended support for Java 11 goes through September 2026.

Some older Java LTS versions were supported for even more than 8 years. Java 7 LTS has a support period of 11 years, and Java 8 LTS has a support period of 16 years!

The opposite of LTS

Java 9, Java 10, Java 12, Java 13, Java 14, Java 15, Java 16, Java 18 are all not LTS versions of Java. Java 19 and Java 20 will also not be a Java LTS release.

If you are picking a non LTS version of Java, as you might guess these versions are supported for a very short period of time. In fact there is no overlap in support for these versions. For example Java 14 was released in March 2020 and support ended in September 2020, which also happens to be when Java 15 was released.

How long is a non LTS version of Java supported for?

Looking at the numbers, a non-LTS version of java is only supported for 6 months! That’s not a very long time.

Are non LTS versions patched for security holes?

Only the latest non-lts version is patched, the older unsupported versions do not receive security patches.

When will the next LTS version of Java be released?

It appears that Java 21 may be the next LTS version of Java. Looking at the current pace of things, it appears that this version will first be released in September 2023.

Table of Java LTS Versions

Java LTS Version Release Date Premier Support Until Extended Support Until
Java 7 LTS July 2011 July 2019 July 2022
Java 8 LTS March 2014 March 2022 December 2030
Java 11 LTS September 2018 September 2023 September 2026
Java 17 LTS September 2021 September 2026 September 2029
Java 21 LTS * September 2023 September 2028 September 2031

* As of this writing Java 21 has not yet been released, so the schedule may change

Like this? Follow me ↯

Java LTS Version Roadmap and Guide was first published on December 08, 2020.

If you like reading about java, oracle, or lts then you might also like:

Want Security Advisories via Email?

Advisory Week is a new weekly email containing security advisories published by major software vendors (Adobe, Apple, Microsoft, etc).

Comments

Post a Comment

Pete is a husband and father located in scenic Central New York area. He owns a ColdFusion Consulting & Products company, Foundeo Inc. Pete is a frequent speaker at national conferences including Adobe ColdFusion Summit, Into The Box and others. He holds a BS in Software Engineering from Clarkson University.

Источник

Оцените статью