Библиотека задач по Java | тесты, код, задания
5.57K subscribers
786 photos
9 videos
357 links
Задачи и тесты по Java для тренировки и обучения.

По рекламе: @tproger_sales_bot

Учиться у нас: clc.to/KV5NkA

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
У вас в проекте есть файл вроде utils_v2_final_FIX.py, который все боятся трогать ❓

Что делаете с таким легаси?

❤️ Не трогаю: работает — и ладно
👍 Переписываю с нуля и надеюсь на лучшее
🔥 Сначала покрываю тестами, потом рефакторю по частям
👾 У нас такого нет — честно-честно

На курсе «ИИ для разработчиков» разберём третий подход: как с помощью агента зафиксировать текущее поведение легаси-кода тестами, а затем менять его небольшими безопасными шагами — без одного огромного PR на тысячу файлов.

До 31 июля действует скидка и бессрочный доступ к материалам.

🔗 Занять место со скидкой

🏃‍♀️ Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Почему этот тест упадёт с NoSuchBeanDefinitionException?
Anonymous Quiz
53%
@WebMvcTest загружает только web-слой, сервисы не включаются
18%
MockMvc и реальные бины нельзя использовать вместе
15%
@Autowired не работает в тестах
5%
Исключения не будет
10%
Посмотреть ответ
👍1🔥1😢1
Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇
🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами

Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️

На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка.

⚡️ Предзапись на осенний поток уже открыта

🏃‍♀️ Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой из методов класса Object является устаревшим и не рекомендуется для использования в Java 9 и выше?
Anonymous Quiz
78%
finalize()
9%
notify()
11%
clone()
2%
toString()
👍1🥱1
Один доступ вместо вечного выбора между «нужно для работы» и «давно хотелось изучить» 👇
👅 Самое сложное — выбрать не курс, а направление

Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science.

🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.

В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.


Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎

🔗 Узнать подробнее

🏃‍♀️ Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
Какая временная сложность у contains() в ArrayList в худшем случае?
Anonymous Quiz
2%
O(log1)
6%
O(1)
82%
O(n)
10%
O(log n)
🥱2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
😭 Как не потратить недельный лимит AI-кодинга за три дня?

Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.

🔘 Поговорим о том:

— когда дорогая модель действительно нужна, а когда хватит дешёвой;
— сколько стоит один прогон и куда уходят токены;
— какие задачи можно отдавать субагентам;
— как настроить маршрутизацию моделей;
— что проверять в AI-коде перед merge.

✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после.

⬇️ 17 сентября, 19:00 МСК
⬇️ 1,5 часа · бесплатно
⬇️ Арсений Харланов и Олег Лайок

💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре.

🔗 Зарегистрироваться на вебинар⁠
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека программиста
👀 Как вы смотрите видео?

Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?

Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.

🕰️ Опрос займёт около 3 минут.

В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.

🔗 Поделиться опытом

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Изменится ли исходный список после очистки subList?

OpenJDK 21. Что выведет код? Нужные импорты подключены.

var values = new ArrayList<>(List.of(1, 2, 3, 4));
var middle = values.subList(1, 3);

middle.clear();

System.out.println(values);


👾 — [1, 2, 3, 4]
👍 — [2, 3]
🥰 — [1, 4]
⚡️ — ConcurrentModificationException

Ответ: 🥰 — [1, 4].

subList возвращает представление части списка, связанное с исходным списком. Индекс 1 включён, индекс 3 не включён: middle содержит 2 и 3. Вызов clear удаляет эти элементы из исходного ArrayList.

Правило в документации Java

🐸 Библиотека задач по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰6👾4👍2
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция!

До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один.

Например, можно совместить:

💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.

💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.


Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥

Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога.

Акция действует до 31 октября включительно ⏳

⏬ Собрать свой учебный билд
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Что останется в StringBuilder после переназначения параметра?

OpenJDK 21. Что выведет код? Нужные импорты подключены.

class Demo {
static void change(StringBuilder text) {
text.append("B");
text = new StringBuilder("C");
text.append("D");
}

public static void main(String[] args) {
var text = new StringBuilder("A");
change(text);
System.out.println(text);
}
}


👾 — AB
👍 — CD
🥰 — ABCD
⚡️ — Ошибка компиляции

Ответ: 👾 — AB.

Java передаёт значение ссылки. Сначала параметр text и переменная вызывающего кода указывают на один StringBuilder, поэтому append("B") виден снаружи. Затем параметр получает ссылку на другой объект. Это не переназначает переменную в main.

Правило в документации Java

🐸 Библиотека задач по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👾9👍8
❓ Какое исключение сохранится, если ошиблись и try, и close?

OpenJDK 21. Что выведет код? Нужные импорты подключены.

class Demo {
static class Resource implements AutoCloseable {
public void close() {
throw new IllegalStateException("close");
}
}

public static void main(String[] args) {
try (var resource = new Resource()) {
throw new IllegalArgumentException("body");
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(
e.getSuppressed()[0].getMessage()
);
}
}
}


👾 — close, затем body
👍 — Только close
🥰 — Ошибка компиляции
⚡️ — body, затем close

Ответ: ⚡️ — body, затем close.

В try-with-resources исключение из тела остаётся основным. Ошибка при закрытии ресурса добавляется к нему как подавленная и доступна через getSuppressed(). Поэтому e содержит ошибку с сообщением body, а первый подавленный элемент — ошибку close.

Правило в документации Java

🐸 Библиотека задач по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡4🔥1
❓ Можно ли повторно использовать Stream после count?

OpenJDK 21. Что выведет код? Нужные импорты подключены.

var stream = Stream.of("A", "B");

System.out.println(stream.count());
stream.forEach(System.out::println);


👾 — 2, затем A и B
👍 — 2, затем IllegalStateException
🥰 — Только 2, без исключения
⚡️ — Ошибка компиляции

Ответ: 👍 — 2, затем IllegalStateException.

count — терминальная операция: поток уже использован. В OpenJDK 21 повторная терминальная операция на этом Stream.of вызывает IllegalStateException. Чтобы снова обработать те же данные, нужно создать новый поток из источника.

Правило в документации Java

🐸 Библиотека задач по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👾1
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше.

В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.

Например, можно совместить два направления по работе с ИИ:

💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.

💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.


📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета.

А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога.

Акция действует до 31 октября включительно ⏳

⏮️ Пора прокачать свой стек
Please open Telegram to view this post
VIEW IN TELEGRAM