Краткий обзор функций 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