Telegram Web Link
Math.abs()

Math.abs() возвращает абсолютное значение числа (модуль). Это полезно для работы с расстояниями, разницей между числами и при математических вычислениях.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Collections.disjoint()

Collections.disjoint() проверяет, не имеют ли две коллекции общих элементов. Это полезно для фильтрации, сравнения и оптимизации поиска пересечений.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Collections.nCopies()

Collections.nCopies() создаёт неизменяемый список, содержащий заданное количество копий одного и того же объекта. Это полезно для инициализации, заглушек и создания шаблонных коллекций.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Class.getRecordComponents()

Class.getRecordComponents() возвращает информацию о компонентах записи (record). Это полезно для рефлексии, сериализации и автоматического отображения данных в Record-классах.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Pattern.asPredicate()

Pattern.asPredicate() превращает регулярное выражение в Predicate<String>, который можно использовать прямо в потоках (Stream). Это полезно для фильтрации строк без явного вызова .matches().

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ System.gc() + System.runFinalization()

Хотя явно вызывать сборку мусора в Java не рекомендуется, комбинация System.gc() и System.runFinalization() может быть полезна в тестах, профилировании и при ручном контроле над ресурсами во время разработки

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
ClassLoader.getResources()

ClassLoader.getResources() находит все ресурсы с указанным именем в classpath и возвращает Enumeration<URL>. Это полезно для загрузки всех версий конфигурационных файлов, плагинов или ресурсов из JAR-файлов и папок одновременно

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Class.getNestMembers()

Class.getNestMembers() возвращает массив всех классов, принадлежащих одной «группе вложенности» (nest) — то есть тех, кто может делиться приватными методами и полями друг с другом. Это полезно для анализа доступа между вложенными классами и для инструментов байткод-анализа.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Class.isHidden()

Class.isHidden() проверяет, является ли класс скрытым — то есть загруженным как временный или внутренний, без явного имени в classpath. Это полезно при работе с динамической генерацией байткода, шейпингом JIT-классов и JVM-инструментами.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🚫 Антипаттерн недели: Нарушение принципа инкапсуляции через public поля

В Java открытие полей класса как public — плохая практика. Это нарушает инкапсуляцию и делает объект уязвимым к неконтролируемым изменениям извне.

✔️ Используйте private поля и getter/setter-методы для доступа и контроля над значениями.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Class.isSynthetic()

Class.isSynthetic() возвращает true, если класс был создан компилятором и не существует в исходном коде напрямую. Это полезно для анализа байткода, фреймворков и генераторов кода, особенно при работе с лямбдами, вложенными классами и bridge-методами

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Строковые шаблоны (Preview)

Строковые шаблоны (string templates) — новая функция в режиме preview, упрощающая создание строк с вычисляемыми значениями.

🗣️ Ранее используемая в Java конкатенация приводила к сложному коду, тогда как строковая интерполяция в других языках сокращает код, но увеличивает риски безопасности.

ℹ️ Шаблонные выражения сочетают лаконичность интерполяции и высокую безопасность.

String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan"); // true


Выражение использует обработчик STR и встроенное выражение {name}, которое может включать строки, арифметику, методы и поля. Обработчики выполняются динамически и обеспечивают безопасность кода. Шаблоны не работают без обработчика, отвечающего за интерполяцию и валидацию.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ System.identityHashCode()

System.identityHashCode() возвращает хеш-код объекта, основанный на его реальном адресе в памяти, независимо от переопределения hashCode(). Это полезно для диагностики, дебага, трекинга объектов и работы с объектами, у которых переопределён hashCode() нестандартным образом

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Integer.rotateLeft()

Integer.rotateLeft() выполняет циклический сдвиг битов числа влево. Это полезно для создания быстрых хеш-функций, криптографии и некоторых алгоритмов работы с битами

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Class.getPermittedSubclasses()

Class.getPermittedSubclasses() возвращает список всех классов, которым разрешено наследовать sealed-класс. Это полезно для анализа и валидации иерархий sealed-типов во время выполнения, особенно в плагин-системах и фреймворках.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/07/01 11:10:55
Back to Top
HTML Embed Code: