Краткий обзор функций Java 19: 9 лучших методов с примерами кода.

В этой статье будут рассмотрены 9 основных функций Java 19 вместе с примерами использования, представленными в виде кода.

@javatg – уроки java в телеграм.

Records

Java 19 вводит идею записей (records), которые представляют собой новый тип класса, который может иметь фиксированное количество полей. Эти классы являются неизменяемыми и предназначены для упрощения работы с данными.

record Person(String name, int age) { }

var person = new Person("Egor Java, 30);
System.out.println(person.name()); // "Egor Java"

Text Blocks
Текстовый блок (Text Blocks) — это новая форма строкового литерала, представленная в Java 19. Это позволяет разработчикам создавать многострочные строки без использования escape-символов.

String html = """
<html>
    <body>
        <h1>Hello, t.me/Javatg!</h1>
    </body>
</html>
""";

Pattern Matching
Java 19 предоставляет новую функцию, называемую Pattern Matching , которая позволяет разработчикам легко определять тип объекта.

Object obj = "Hello, World!";
if (obj instanceof String s) {
    System.out.println(s.length());
}

Enhanced Switch Expressions
Оператор switch в Java 19 улучшен, чтобы позволить разработчикам использовать его как выражение, которое может быть присвоено переменной или возвращено из метода.

int num = 2;
String result = switch(num) {
    case 1 -> "one";
    case 2 -> "two";
    default -> "other";
};
System.out.println(result); // "two"

Запечатанные (sealed) типы

Запечатанные (sealed) типы — это классы или интерфейсы, которые накладывают ограничения на другие классы или интерфейсы, которые могут расширять или реализовывать их

ClassLoader loader = ...;
Class<?> hidden = loader.defineHiddenClass(...);

Скрытые классы

Скрытые классы (JEP 371) — это классы, которые не могут быть задействованы непосредственно байт-кодом других классов, то есть классы, недоступные для загрузчика классов и доступные только загрузчику классов, который их определяет.

ClassLoader loader = ...;
Class<?> hidden = loader.defineHiddenClass(...);

Внешний компоновщик
API-интерфейсы внешнего компоновщика и поиска — новые функции в Java 19, позволяющие разработчикам эффективно взаимодействовать с собственным кодом.

ForeignLinker linker = ForeignLinker.getInstance();
ForeignMemory memory = linker.newMemory(1024);

Параллельная обработка стека потоков
Параллельная обработка стека потоков — это новая функция в Java 19, которая позволяет разработчикам обрабатывать стеки многих потоков одновременно.

Thread.getAllStackTraces().keySet().parallelStream().forEach(thread -> {
    // process thread stack
});

Новые методы в классе String
В Java 19 класс String получил множество новых методов, включая isBlank() и repeat().

String str = "";
System.out.println(str.isBlank()); // true
System.out.println
+1
2
+1
2
+1
1
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *