При успешном создании нескольких ресурсов какой порядок их закрытия задаёт try-with-resources?
База Hintsage
Программирование Java
Язык Java, JVM и экосистема серверной разработки.
Темы раздела
Выберите подраздел
- 3 вопроса
Общие вопросы
Смешанные вопросы по Java.
Открыть раздел - 50 вопросов
Java Core
Базовая семантика языка, типы, методы, классы и ключевые конструкции.
Открыть раздел - 50 вопросов
ООП и система типов
Наследование, полиморфизм, интерфейсы, классы и разрешение методов.
Открыть раздел - 50 вопросов
Коллекции
Java Collections Framework, контракты, реализации и сложность операций.
Открыть раздел - 50 вопросов
Многопоточность
Java Memory Model, потоки, синхронизация и java.util.concurrent.
Открыть раздел - 50 вопросов
JVM и память
Загрузка классов, память JVM, GC, JIT и диагностика.
Открыть раздел - 50 вопросов
Generics
Параметризация типов, bounds, wildcards и стирание типов.
Открыть раздел - 50 вопросов
Stream API
Функциональные интерфейсы, streams, collectors и параллельная обработка.
Открыть раздел - 50 вопросов
Исключения
Иерархия исключений, обработка ошибок и управление ресурсами.
Открыть раздел
Практика
Вопросы: Программирование Java
При преобразовании низкоуровневой ошибки в доменное исключение как сохранить исходную причину для диагностики?
Как try-with-resources обрабатывает уже открытые ресурсы, если инициализация следующего ресурса завершается исключением?
Представьте, что обработчик catch(Exception) не сработал при аварийном завершении из-за OutOfMemoryError: почему так происходит?
В чём причина ограничения Java, запрещающего указывать в одном multi-catch альтернативы, связанные отношением наследования?
Как компилятор Java определяет, обязан ли вызывающий код обработать исключение, объявленное методом?
Может ли переопределяющий метод объявить более широкое проверяемое исключение, чем метод родителя?
При использовании partitioningBy для потока без элементов одного класса гарантируется ли наличие обеих булевых ключей в результате?
В отчёте сумма значений выходит за диапазон int при использовании summingInt: почему результат может оказаться неверным?
В каком порядке выполняются несколько обработчиков, зарегистрированных у одного Stream через onClose?
В сервисе нужно сохранить все группы, даже если после условия в группе нет элементов. Почему в коде withDownstream содержит ключ a, а beforeGrouping — нет?
import java.util.*;
import java.util.stream.*;
List<String> words = List.of("ant", "ape", "bat", "bear");
Map<Character, List<String>> beforeGrouping = words.stream()
.filter(s -> s.length() > 3)
.collect(Collectors.groupingBy(s -> s.charAt(0)));
Map<Character, List<String>> withDownstream = words.stream()
.collect(Collectors.groupingBy(
s -> s.charAt(0),
Collectors.filtering(s -> s.length() > 3, Collectors.toList())
));
При сборе Stream в Map функция слияния для повторяющегося ключа возвращает null: что произойдёт с этой записью?
Какое свойство поведения Stream нарушается, когда предикат изменяет общее состояние?
Для деления элементов по булеву условию какой коллектор точнее выражает задачу: partitioningBy или groupingBy?
В параллельном сборе Stream с нетривиальным Collector когда применяется finisher и почему его нельзя считать обработчиком каждого частичного результата?
В цепочке фильтрации один из предикатов объединён через Predicate.and: при каком результате первого предиката второй гарантированно не запускается?
При сборе упорядоченного стрима в Map порядок ключей при обходе результата меняется: каким механизмом это объясняется?
В ситуации, когда один стрим должен сформировать единый итог из двух независимых сборов, какой механизм Collectors.teeing позволяет сделать это за один проход?
При проектировании источника для параллельного стрима какую роль играет метод trySplit?
В чём механистическое отличие takeWhile от filter при обработке упорядоченного стрима?
Показано 41–60 из 403