Java задачи с собеседований
6.27K subscribers
588 photos
6 videos
19 files
245 links
Задачи, тесты и теоретические вопросы по JAVA.

Репозиторий: https://github.com/proghub-official/java-interview
Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
加入频道
⚙️ ClassValue.computeValue()

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

👩‍💻
@javaquiz
⚙️ Character.codePointCount()

Character.codePointCount() определяет, сколько кодпоинтов Unicode содержится в строке между двумя заданными индексами. Это особенно полезно при обработке текста, содержащего символы, выходящие за пределы Основной многоязычной плоскости (например, эмодзи или редкие иероглифы), так как такие символы занимают два char в UTF-16.

👩‍💻
@javaquiz
⚙️ Метод ThreadGroup.enumerate() позволяет получить перечень всех потоков в определенной группе. Это может быть полезно для мониторинга, отладки и управления связанными потоками.

👩‍💻
@javaquiz
⚙️ Class.getEnclosingMethod() возвращает метод, в котором определён локальный или анонимный класс. Это может быть полезно для анализа структуры кода во время выполнения, например, при логировании или рефлексии.

👩‍💻
@javaquiz
⚙️ Character.getType()

Character.getType() определяет тип символа согласно его Unicode-категории, например, это может быть буква, цифра, знак препинания и так далее. Это полезно для фильтрации и анализа текста, особенно в многоязычных или валидационных системах.

👩‍💻
@javaquiz
⚙️ System.mapLibraryName()

System.mapLibraryName() конвертирует логическое имя нативной библиотеки в зависимое от платформы. Это полезно при динамической загрузке .dll, .so или .dylib файлов в кроссплатформенных Java-приложениях.

👩‍💻
@javaquiz
⚙️ Class.getCanonicalName()

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

👩‍💻
@javaquiz
⚙️ Метод Thread.getUncaughtExceptionHandler() позволяет получить или установить обработчик для необработанных исключений, возникающих в потоке. Это удобно для ведения журнала ошибок, обработки аварийных завершений или восстановления без необходимости использовать блоки try-catch в каждом потоке.

👩‍💻
@javaquiz
⚙️ Class.isSealed()

Class.isSealed() помогает узнать, является ли класс sealed-классом. Это полезно для анализа и рефлексии иерархий, особенно при работе с модификаторами sealed, non-sealed и final в Java 17 и выше.

👩‍💻
@javaquiz
⚙️ Boolean.compare()

Метод Boolean.compare() сравнивает два булевых значения и возвращает 0, -1 или 1. Это может быть полезно для сортировки или сравнения логических значений в коллекциях.

👩‍💻
@javaquiz
⚙️ Math.floorDiv()

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

👩‍💻
@javaquiz
⚙️ Class.descriptorString()

Метод Class.descriptorString() (Java 12+) возвращает строку, описывающую тип в формате JVM, который используется в байткоде. Это может быть полезно для анализа классов, генерации байткода или разработки инструментов, которые взаимодействуют с JVM на низком уровне.

👩‍💻
@javaquiz
⚙️ Метод String.translateEscapes() (Java 15+) обрабатывает escape-последовательности в строках, преобразуя их в реальные символы. Это полезно для динамической обработки строк, содержащих \n, \t, \\ и другие управляющие символы.

👩‍💻
@javaquiz
⚙️ Optional.stream() превращает Optional в поток: он будет пустым, если значение отсутствует, или содержать один элемент, если значение есть. Это удобно для использования Optional в потоковых пайплайнах.

👩‍💻
@javaquiz
🚫 В Java оператор == сравнивает адреса объектов в памяти, а не их фактическое содержимое. Это может привести к неожиданным результатам, особенно при сравнении строк, обёрток (таких как Integer и Double) и пользовательских классов.

✔️ Для сравнения содержимого объектов следует использовать метод .equals().

👩‍💻
@javaquiz
⚙️ List.of()

List.of() позволяет создать неизменяемый список из указанных элементов. Это удобно для создания постоянных коллекций без необходимости использовать Arrays.asList() или Collections.unmodifiableList().

👩‍💻
@javaquiz