gram news
Аватар канала Java Interview Tasks

Java Interview Tasks

@java_interview_tasks

Реальные вопросы и задачи с собеседований. Оригинальный авторский контент. Актуальный материал. Уровень вопросов от junior до supersenior. Автор канала - @alexzelentsov По рекламе: @alexzelentsov

4,710подписчиков

Открыть канал

Последние посты

  • Java Interview Tasks

    19 сент., 09:21

    🔍 Ответ на задачу про Stream.reduce: Опасность identity 🚩 Первый аргумент reduce — это identity. Это значение, которое возвращается, если стрим пуст, и которое используется как начальное при вычислении. Вычисление идет так: identity + element1 + element2... В нашем случае: 10 + 1 + 2 + 3 = 16.Вывод: Напечатается 16. Если вы хотите просто сумму — identity должен быть 0. Если произведение — 1.⚡️ Не перепутайте: Identity должен быть нейтральным элементом для вашей операции. Для сложения это 0, для умножения 1, для конкатенации строк — пустая строка.#java #streamapi #reduce #basics #интервью #java_interview_tasks
  • Java Interview Tasks

    18 сент., 11:41

    367опрос411Открыть в Telegram
  • Java Interview Tasks

    18 сент., 11:41изменён

    Что выведет код? int sum = Stream.of(1, 2, 3) .reduce(10, (a, b) -> a + b); System.out.println(sum);
  • Java Interview Tasks

    17 сент., 09:21изменён

    🔍 Ответ на задачу про Stream.flatMap: - map() превращает каждый элемент в другой элемент (1 -> 1). Если применить его здесь, мы получим стрим стримов: Stream<Stream<String>>. - flatMap() превращает каждый элемент в стрим, а затем "склеивает" все эти стримы в один плоский Stream<String>.Вывод: Вместо двух вложенных списков мы получим один стрим из 3-х символов: "a", "b", "c". Результат count() — 3.⚡️ Не перепутайте: Используйте flatMap, когда ваш объект содержит коллекцию или Optional, и вы хотите работать с их содержимым напрямую.#java #streamapi #flatmap #basics #интервью #java_interview_tasks
  • Java Interview Tasks

    16 сент., 11:41

    Зачем нужен flatMap, если есть обычный map? Что выведет этот код? List<List<String>> list = Arrays.asList( Arrays.asList("a"), Arrays.asList("b", "c") ); System.out.println(list.stream() .flatMap(Collection::stream) .count());
    421411Открыть в Telegram
  • Java Interview Tasks

    16 сент., 11:41

    400опрос411Открыть в Telegram
  • Java Interview Tasks

    16 сент., 07:04

    ⚡️ Здравствуйте, Дорогие подписчики!Представляем вашему вниманию подборку полезных каналов в сфере «Образование и наука» 🔥 Будем очень рады, если вы найдете для себя что-нибудь полезное.❗️Ссылка на папку:https://t.me/addlist/X7qi5eXa3Xc1Nzgy
    TelegramАлексей Панкратов invites you to add the folder “📕Образование”, which includes 77 chats.
    4158331Открыть в Telegram
  • Java Interview Tasks

    15 сент., 09:21

    🔍 Ответ на задачу про Stream.findFirst vs findAny: В чём разница? 🔍 - findFirst() жестко привязан к порядку следования (encounter order). В параллельном стриме он потратит время на то, чтобы убедиться, что вернул именно первый элемент. - findAny() позволяет среде выполнения выбрать любой подходящий элемент. В параллельных стримах это работает гораздо быстрее, так как не нужно координировать потоки для соблюдения порядка.Вывод: В параллельном стриме findAny() может вернуть любой элемент, подходящий под условие. Если порядок не важен — используйте его для скорости.⚡️ Не перепутайте: В последовательном (sequential) стриме findAny() чаще всего тоже будет возвращать первый элемент, но спецификация этого не гарантирует.#java #streamapi #parallel #performance #интервью #java_interview_tasks
  • Java Interview Tasks

    14 сент., 11:41

    419опрос321Открыть в Telegram
  • Java Interview Tasks

    14 сент., 11:41

    Гарантирует ли findAny() возвращение самого первого элемента стрима? List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); Optional<Integer> result = list.parallelStream() .filter(x -> x > 2) .findAny();
    409211Открыть в Telegram
  • Java Interview Tasks

    12 сент., 09:21

    🔍 Ответ на задачу про Method References: Неоднозначность 😵‍💫 Ссылка Service::process может быть интерпретирована двумя способами: 1. Как вызов статического метода: (Service s) -> Service.process(s). 2. Как вызов обычного метода у текущего элемента: (Service s) -> s.process(). Обе интерпретации идеально подходят под сигнатуру Consumer<Service>, который ожидает forEach. Компилятор не знает, какой метод выбрать.Вывод: Возникает ошибка компиляции из-за неоднозначности.⚡️ Не перепутайте: В таких случаях используйте обычную лямбду s -> s.process(), чтобы явно указать нужный метод.#java #lambda #methodreference #bug #интервью #java_interview_tasks
    484521Открыть в Telegram
  • Java Interview Tasks

    11 сент., 11:41

    Может ли простая ссылка на метод запутать компилятор? Почему этот код не скомпилируется? class Service { void process() { } static void process(Service s) { } } List<Service> list = new ArrayList<>(); list.forEach(Service::process);
  • Java Interview Tasks

    11 сент., 11:41

    539опрос22Открыть в Telegram
  • Java Interview Tasks

    11 сент., 09:12

    ### 🧮 Задача: (7x−y)(7y−z)(7z−x) = 11, где x, y, z — целые числа### Решение: 🚫Ключевое наблюдение — посмотрим на чётность произведения (7x−y)(7y−z)(7z−x).Сложим все три множителя:(7x − y) + (7y − z) + (7z − x) = 6x + 6y + 6z = 6(x + y + z)Сумма трёх множителей всегда чётна (кратна 6). Если сумма трёх целых чисел чётна, то среди них либо все три чётные, либо ровно два нечётных и одно чётное. В обоих случаях хотя бы один множитель — чётный. А значит, произведение (7x−y)(7y−z)(7z−x) всегда чётно при любых целых x, y, z.Но 11 — нечётное число.### Вывод: Уравнение не имеет решений в целых числах.#math #numbertheory #diophantine #интервью #java_interview_tasks
    462631Открыть в Telegram
  • Java Interview Tasks

    10 сент., 11:14

    Задача с собеседования в grok: x,y,z -целые числа, решить уравнение: (7x-y)(7y-z)(7z-x)=11
    538311Открыть в Telegram
  • Java Interview Tasks

    10 сент., 09:21

    🔍 Ответ на задачу про PECS: Producer Extends, Consumer Super 🦆 Это правило PECS: - Producer Extends: Если коллекция "производит" данные (мы из нее читаем), используйте extends. Мы гарантируем, что там лежат объекты типа T или его наследники, поэтому их безопасно приводить к T. - Consumer Super: Если коллекция "потребляет" данные (мы в нее пишем), используйте super. Мы можем безопасно положить туда T. Но при чтении мы получим только Object, так как не знаем реального типа.Вывод: Верна только строка A.⚡️ Не перепутайте: List<? extends T> — только для чтения. List<? super T> — в основном для записи.#java #generics #pecs #clean_code #интервью #java_interview_tasks
  • Java Interview Tasks

    9 сент., 11:41

    Когда использовать ? extends, а когда ? super? Из какого списка можно ЧИТАТЬ данные (получать объекты типа T)? void process(List<? extends T> list1, List<? super T> list2) { T item1 = list1.get(0); // A T item2 = list2.get(0); // B }
  • Java Interview Tasks

    9 сент., 11:41

    505опрос3Открыть в Telegram
  • Java Interview Tasks

    8 сент., 09:21

    🔍 Ответ на задачу про Wildcards: List<Object> vs List<?> ❓ 1. List<Object> не является родителем для List<String>. Несмотря на то, что String — это Object, сами коллекции инвариантны. Иначе мы могли бы положить Integer в список строк через ссылку на List<Object>. 2. List<?> (wildcard) — это родитель для любого List. Строка 2 верна. 3. В List<?> нельзя ничего добавлять (кроме null), так как мы не знаем, список какого типа там на самом деле.Вывод: Не скомпилируются строки 1 и 3.⚡️ Не перепутайте: List<Object> — это список, в который можно класть любые объекты. List<?> — это список какого-то неизвестного типа, из него можно только читать.#java #generics #wildcards #basics #интервью #java_interview_tasks
  • Java Interview Tasks

    7 сент., 11:41

    Можно ли положить String в список "любых объектов"? Какие строки кода НЕ скомпилируются? List<Object> list1 = new ArrayList<String>(); // 1 List<?> list2 = new ArrayList<String>(); // 2 list2.add("hello"); // 3
    527311Открыть в Telegram