⚙️ Math.nextUp()
Math.nextUp() возвращает следующее большее число с плавающей запятой относительно заданного значения. Это полезно для обеспечения точности вычислений и численной стабильности.
👩💻
@javaquiz
Math.nextUp() возвращает следующее большее число с плавающей запятой относительно заданного значения. Это полезно для обеспечения точности вычислений и численной стабильности.
👩💻
@javaquiz
⚙️ String.indent()
String.indent() позволяет добавлять или убираать отступы в каждой строке текста. Это удобно для форматирования многострочных текстов.
👩💻
@javaquiz
String.indent() позволяет добавлять или убираать отступы в каждой строке текста. Это удобно для форматирования многострочных текстов.
👩💻
@javaquiz
⚙️ Collections.reverse()
Метод Collections.reverse() меняет порядок элементов в списке на противоположный. Это удобно для реверсирования данных без необходимости создания нового списка.
👩💻
@javaquiz
Метод Collections.reverse() меняет порядок элементов в списке на противоположный. Это удобно для реверсирования данных без необходимости создания нового списка.
👩💻
@javaquiz
⚙️ Метод Collections.frequency() подсчитывает, сколько раз определённый элемент встречается в коллекции. Он перебирает все элементы и сравнивает их с заданным объектом с помощью метода .equals().
Это полезно для анализа данных, подсчёта дубликатов и составления статистики по коллекциям.
👩💻
@javaquiz
Это полезно для анализа данных, подсчёта дубликатов и составления статистики по коллекциям.
👩💻
@javaquiz
#вопросы_с_собеседований
Может ли метод main вызвать исключение и если да, то где будет происходить его обработка?
Метод main действительно может вызвать исключение. Это исключение будет передано в JVM (виртуальную машину Java). JVM поймает это исключение и завершит выполнение программы, выводя трассировку стека.
Таким образом, исключение из main приведет к аварийному завершению программы.
Чтобы этого избежать, рекомендуется перехватывать исключения внутри main и обрабатывать их, чтобы они не выходили за его пределы.
👩💻
@javaquiz
Может ли метод main вызвать исключение и если да, то где будет происходить его обработка?
Метод main действительно может вызвать исключение. Это исключение будет передано в JVM (виртуальную машину Java). JVM поймает это исключение и завершит выполнение программы, выводя трассировку стека.
Таким образом, исключение из main приведет к аварийному завершению программы.
Чтобы этого избежать, рекомендуется перехватывать исключения внутри main и обрабатывать их, чтобы они не выходили за его пределы.
👩💻
@javaquiz
String.join() соединяет элементы из коллекции или массива в одну строку с заданным разделителем. Это удобно для аккуратного отображения данных и создания текстовых шаблонов.
👩💻
@javaquiz
👩💻
@javaquiz
Collections.disjoint() определяет, есть ли у двух коллекций общие элементы. Это полезно для фильтрации, сравнения и улучшения поиска пересечений.
👩💻
@javaquiz
👩💻
@javaquiz
⚙️ Collections.nCopies()
Метод Collections.nCopies() создает неизменяемый список, который содержит определенное количество копий одного и того же объекта. Это может быть полезно для инициализации, создания заглушек и формирования шаблонных коллекций.
👩💻
@javaquiz
Метод Collections.nCopies() создает неизменяемый список, который содержит определенное количество копий одного и того же объекта. Это может быть полезно для инициализации, создания заглушек и формирования шаблонных коллекций.
👩💻
@javaquiz
⚙️ Class.getRecordComponents()
Class.getRecordComponents() предоставляет информацию о компонентах записи. Это полезно для рефлексии, сериализации и автоматического отображения данных в классах Record.
👩💻
@javaquiz
Class.getRecordComponents() предоставляет информацию о компонентах записи. Это полезно для рефлексии, сериализации и автоматического отображения данных в классах Record.
👩💻
@javaquiz
⚙️ Pattern.asPredicate()
Pattern.asPredicate() преобразует регулярное выражение в Predicate, который можно применять непосредственно в потоках (Stream). Это удобно для фильтрации строк без необходимости явного вызова .matches().
👩💻
@javaquiz
Pattern.asPredicate() преобразует регулярное выражение в Predicate, который можно применять непосредственно в потоках (Stream). Это удобно для фильтрации строк без необходимости явного вызова .matches().
👩💻
@javaquiz
ClassLoader.getResources() ищет все ресурсы с заданным именем в classpath и возвращает Enumeration. Это полезно для загрузки всех версий конфигурационных файлов, плагинов или ресурсов из JAR-файлов и папок одновременно. 👩💻
@javaquiz
@javaquiz
⚙️ Class.getNestMembers()
Class.getNestMembers() возвращает массив всех классов, которые принадлежат одной «группе вложенности» (nest) — то есть тем классам, которые могут обмениваться приватными методами и полями. Это полезно для анализа доступа между вложенными классами и для инструментов анализа байткода.
👩💻
@javaquiz
Class.getNestMembers() возвращает массив всех классов, которые принадлежат одной «группе вложенности» (nest) — то есть тем классам, которые могут обмениваться приватными методами и полями. Это полезно для анализа доступа между вложенными классами и для инструментов анализа байткода.
👩💻
@javaquiz
🚫 Антипаттерн недели: Нарушение принципа инкапсуляции через public поля
В Java открытие полей класса как public — это плохая практика. Это нарушает инкапсуляцию и делает объект уязвимым к неконтролируемым изменениям извне.
✔️ Используйте private поля и методы getter/setter для доступа и контроля над значениями.
👩💻
@javaquiz
В Java открытие полей класса как public — это плохая практика. Это нарушает инкапсуляцию и делает объект уязвимым к неконтролируемым изменениям извне.
✔️ Используйте private поля и методы getter/setter для доступа и контроля над значениями.
👩💻
@javaquiz
➡️ Строковые шаблоны (Preview)
Строковые шаблоны — это новая функция в режиме предварительного просмотра, которая упрощает создание строк с вычисляемыми значениями.
🗣️ Ранее используемая в Java конкатенация приводила к сложному коду, тогда как строковая интерполяция в других языках сокращает код, но увеличивает риски безопасности.
ℹ️ Шаблонные выражения объединяют лаконичность интерполяции и высокую безопасность.
String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan"); // true
Это выражение использует обработчик STR и встроенное выражение {name}, которое может включать строки, арифметику, методы и поля. Обработчики выполняются динамически и обеспечивают безопасность кода. Шаблоны не работают без обработчика, который отвечает за интерполяцию и валидацию.
👩💻
@javaquiz
Строковые шаблоны — это новая функция в режиме предварительного просмотра, которая упрощает создание строк с вычисляемыми значениями.
🗣️ Ранее используемая в Java конкатенация приводила к сложному коду, тогда как строковая интерполяция в других языках сокращает код, но увеличивает риски безопасности.
ℹ️ Шаблонные выражения объединяют лаконичность интерполяции и высокую безопасность.
String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan"); // true
Это выражение использует обработчик STR и встроенное выражение {name}, которое может включать строки, арифметику, методы и поля. Обработчики выполняются динамически и обеспечивают безопасность кода. Шаблоны не работают без обработчика, который отвечает за интерполяцию и валидацию.
👩💻
@javaquiz
⚙️ System.identityHashCode()
System.identityHashCode() возвращает хеш-код объекта, который основывается на его настоящем адресе в памяти, независимо от того, был ли переопределён метод hashCode(). Это полезно для диагностики, отладки, отслеживания объектов и работы с объектами, у которых метод hashCode() был переопределён нестандартным образом.
👩💻
@javaquiz
System.identityHashCode() возвращает хеш-код объекта, который основывается на его настоящем адресе в памяти, независимо от того, был ли переопределён метод hashCode(). Это полезно для диагностики, отладки, отслеживания объектов и работы с объектами, у которых метод hashCode() был переопределён нестандартным образом.
👩💻
@javaquiz
⚙️ Integer.rotateLeft()
Integer.rotateLeft() осуществляет циклический сдвиг битов числа влево. Это может быть полезно для быстрой генерации хеш-функций, в криптографии и в некоторых алгоритмах обработки битов.
👩💻
@javaquiz
Integer.rotateLeft() осуществляет циклический сдвиг битов числа влево. Это может быть полезно для быстрой генерации хеш-функций, в криптографии и в некоторых алгоритмах обработки битов.
👩💻
@javaquiz
⚙️ Class.getPermittedSubclasses()
Class.getPermittedSubclasses() предоставляет перечень всех классов, которым разрешено наследование от sealed-класса. Это полезно для анализа и проверки иерархий sealed-типов во время выполнения, особенно в системах с плагинами и фреймворках.
👩💻
@javaquiz
Class.getPermittedSubclasses() предоставляет перечень всех классов, которым разрешено наследование от sealed-класса. Это полезно для анализа и проверки иерархий sealed-типов во время выполнения, особенно в системах с плагинами и фреймворках.
👩💻
@javaquiz