Привіт, учасники навчання Java!! Java — це одна з найпопулярніших мов програмування, і як Java програміст (Java programmer), ви, напевно, з цим погоджуєтеся!!! Тому для того, щоб зробити програмування на Java ще цікавішим, спільнота Java постійно її вдосконалює.
JDK 21
Як ми оновлюємо свої гаджети, наприклад, мобільні телефони, з старих на нові для деяких цікавих функцій, так само ми повинні адаптувати новітні технології.
У цій статті ми обговоримо нові функції та вдосконалення, які були додані в Java 21. JDK 21 отримає оновлення в межах NFTC до вересня 2026 року, через рік після випуску наступної LTS-версії.
Нові функції
1. Math.clamp()
та StrictMath.clamp()
Методи
Іноді необхідно обмежити числове значення певним діапазоном. Для цього раніше ми могли зробити так:
int clampedValue = value > max ? max : value < min ? min : value;
або, можливо, так:
int clampedValue = Math.max(min, Math.min(max, value));
Але ці "алгоритми" є громіздкими та схильними до помилок.
У Java 21 додано методи Math.clamp()
та StrictMath.clamp()
, які зручно обмежують числове значення між заданими мінімальними та максимальними значеннями. В обох класах Math
та StrictMath
надано чотири перевантаження для типів int
, long
, float
та double
. Перевантаження clamp(long value, int min, int max)
також можна використовувати для безпечного зменшення значення long
до int
.
2. Нові методи String
indexOf(int,int,int)
та indexOf(String,int,int)
для підтримки діапазону індексів
Два нові методи indexOf(int ch, int beginIndex, int endIndex)
та indexOf(String str, int beginIndex, int endIndex)
додано до java.lang.String
для підтримки пошуку символу ch
і рядка str
відповідно в межах зазначеного діапазону індексів.
Окрім повного контролю за діапазоном пошуку, ці методи є більш безпечними у використанні, ніж indexOf(int ch, int fromIndex)
та indexOf(String str, int fromIndex)
, оскільки вони кидають виключення при недопустимих діапазонах пошуку.
3. Нові методи splitWithDelimiters()
додано до String
та java.util.regex.Pattern
На відміну від методів split()
, нові методи splitWithDelimiters()
у java.lang.String
та java.util.regex.Pattern
повертають чергування рядків і роздільників, що збігаються, а не просто рядки.
4. Послідовні колекції (JEP 431)
У фреймворку колекцій Java немає типу колекції, який би представляв послідовність елементів із визначеним порядком їх зустрічі. Наприклад, інтерфейси List та Deque визначають порядок зустрічі, але їхній спільний суперклас Collection — ні. Так само, Set не визначає порядок зустрічі, але підтипи, такі як LinkedHashSet або SortedSet, це роблять.
Java 21 представила нові інтерфейси для представлення колекцій з визначеним порядком елементів. Кожна така колекція має чітко визначений перший, другий елемент і так далі, до останнього. Вона також надає уніфіковані API для доступу до першого та останнього елементів, а також для обробки елементів у зворотному порядку.
5. Відповідність шаблону для switch
Ця функція була спочатку запропонована в JEP 406 (JDK 17), а пізніше вдосконалена за допомогою JEP 420 (JDK 18), 427 (JDK 19) та 433 (JDK 20).
Основна мета цієї функції — дозволити використовувати шаблони у мітках switch case і покращити виразність switch операторів та виразів.
Крім того, було також покращено обробку NullPointerException шляхом дозволу використання мітки null case.
Приклад:
static void testStringNew(String response) {
switch (response) {
case null -> { }
case String s
when s.equalsIgnoreCase("YES") -> {
System.out.println("Ви це зрозуміли");
}
case String s
when s.equalsIgnoreCase("NO") -> {
System.out.println("Соромно");
}
case String s -> {
System.out.println("Вибачте?");
}
}
}
Висновок
У Java 21 також було додано кілька інших нових функцій. Детальніше можна прочитати на https://www.oracle.com/java/technologies/javase/21-relnote-issues.html#NewFeature
Читати більше
[
Кращі практики: Іменування ресурсів REST API
Радійте!! Давайте вип’ємо кави. Добре, бос!!! Отже, що таке REST API і які мають бути кращі практики?
talk2debendra90.medium.com
](/best-practice-rest-api-resource-naming-43c60f01aed2?source=post_page-----82a8cf5d3958--------------------------------)
[
Kafka — Платформа для потокової передачі подій
Огляд
talk2debendra90.medium.com
](/kafka-an-event-streaming-platform-ca3998a40976?source=post_page-----82a8cf5d3958--------------------------------)
[
SBA (Spring Boot Admin Server) — Моніторинг і керування мікросервісами
Припустимо, у вас є кілька мікросервісів і ви хочете керувати та моніторити їх, наприклад, якщо один з сервісів...
talk2debendra90.medium.com
](/sba-spring-boot-admin-server-monitoring-and-management-of-microservice-3b3df3b0ec1e?source=post_page-----82a8cf5d3958--------------------------------)
Перекладено з: Java 21 : New Features