Сравните findFirst и findAny в параллельном стриме: какую гарантию по элементу даёт каждая операция?
База 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
При захвате локальной переменной лямбдой в Stream почему компилятор требует, чтобы она не изменялась после инициализации?
Как характеристика IDENTITY_FINISH меняет работу Collector при завершении сбора?
В параллельном стриме операция limit может запросить у источника больше элементов, чем вернёт. Каким механизмом объясняется такое поведение?
Рассмотрите упорядоченный стрим, который собирают Collector с характеристикой UNORDERED: какие гарантии по порядку результата исчезают?
Нужно получить плоский список токенов из строк. Какую операцию следует применить вместо указанной, чтобы результат имел тип List<String> и содержал a, b, c?
import java.util.*;
import java.util.stream.*;
List<String> result = Stream.of("a,b", "c")
.map(s -> Arrays.stream(s.split(",")))
.toList();
Представьте обработку коллекции стримом, где лямбда изменяет исходную коллекцию: какой контракт нарушен?
От чего зависит эффективность параллельного стрима при разбиении его источника?
Разберите ошибку в объявлении Collector: почему параллельный сбор может повредить результат, несмотря на наличие combiner?
import java.util.*;
import java.util.stream.*;
Collector<Integer, List<Integer>, List<Integer>> bad = Collector.of(
ArrayList::new,
List::add,
(left, right) -> { left.addAll(right); return left; },
Collector.Characteristics.CONCURRENT
);
List<Integer> result = IntStream.range(0, 100_000)
.parallel().unordered().boxed().collect(bad);
Какую проблему решает разделение типов промежуточного контейнера и итогового результата в Collector?
Как компилятор определяет тип лямбда-выражения, переданного операции Stream API?
Что произойдёт при повторном использовании одного объекта Stream после завершения терминальной операции?
В сервисе собирают числа из параллельного стрима в строку. Определите, какой контракт нарушает этот код и почему результат может быть некорректным.
String result = IntStream.rangeClosed(1, 1000)
.parallel()
.boxed()
.reduce(
new StringBuilder(),
(builder, value) -> builder.append(value).append(','),
(left, right) -> left.append(right)
)
.toString();
Какой порядок элементов гарантирован при обработке упорядоченного параллельного стрима через обычный forEach?
В API параметр должен принимать коллекции списков строк, включая коллекции списков специализированных реализаций. Как верхний wildcard у внешней коллекции меняет возможность записи и чтения?
В каком случае классу, реализующему два параметризованных интерфейса, приходится явно переопределять один и тот же default-метод, хотя после подстановки типов его сигнатуры совпадают?
При передаче аргументов разных подтипов в обобщённый метод с одним параметром T каким образом компилятор выбирает тип T?
Может ли компилятор вывести для параметра обобщённого метода тип, которого нет отдельным именем в исходном коде?
Как параметризация внешнего класса влияет на тип его нестатического внутреннего класса?
В чём различие между unchecked conversion и unchecked cast при работе с обобщёнными типами Java?
Показано 81–100 из 403