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

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Разработчику нужен стабильный результат, 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
❓ Почему тернарное выражение с Integer может выбросить исключение?

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

Integer value = null;
boolean useValue = true;

Integer result = useValue ? value : 0;
System.out.println(result);


👾 — null
👍 — 0
🥰 — NullPointerException
⚡️ — Ошибка компиляции

Ответ: 🥰 — NullPointerException.

Ветви Integer и int образуют числовое условное выражение типа int. При выборе value требуется распаковать Integer в int. Но value равен null, поэтому возникает NullPointerException. Тип переменной result не отменяет эту распаковку.

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

🐸 Библиотека задач по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰6👍1
❓ Почему HashSet и TreeSet по-разному считают BigDecimal?

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

var a = new BigDecimal("1.0");
var b = new BigDecimal("1.00");

var hash = new HashSet<BigDecimal>();
hash.add(a);
hash.add(b);

var tree = new TreeSet<BigDecimal>();
tree.add(a);
tree.add(b);

System.out.println(hash.size() + " " + tree.size());


👾 — 2 1
👍 — 1 1
🥰 — 2 2
⚡️ — 1 2

Ответ: 👾 — 2 1.

HashSet опирается на equals и hashCode. Для BigDecimal equals учитывает и числовое значение, и scale: у 1.0 и 1.00 он различается. TreeSet без собственного компаратора использует compareTo, которое считает эти значения равными. Поэтому размеры — 2 и 1.

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

🐸 Библиотека задач по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👾4👍1
Приглашаем на Java Jam — бесплатный митап ЮMoney для бэкенд-разработчиков 🔥

✅ 29 октября, четверг, 19:00 МСК — приходите на митап в Санкт-Петербурге или смотрите трансляцию. 

Спикеры из ЮMoney и Сбера выступят с докладами:

🟣 Один апгрейд — больше сотни сервисов: как мы обновляем Java-стек в компании
Обсудим, как обновить Gradle, Spring Boot и Java в 120+ компонентах, не останавливая разработку. Расскажем, как выстраивали процессы на протяжении этого времени: от порядка действий и массовых патчей до взаимодействия с командами и решения трудностей, с которыми столкнулись во время последнего обновления.

🟣 Как я автоматизировал свой проект — и всё сломал
Разберём, как выстроить автоматизацию в проекте с помощью ИИ и какие шишки можно набить на пути. Поговорим, как работает длинный контекст в моделях и как организовать работу с учётом этих особенностей.

🟣 Откатить нельзя оставить: мониторинг выкладки релиза на основе Sentry
Ошибки случаются. Узнаем, какие из них появляются или возникают чаще после последнего релиза — и достаточно ли этого, чтобы принять решение об откате.

Зарегистрируйтесь, чтобы принять участие. Все подробности — на сайте митапа Java Jam👈
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Сколько элементов создаст Arrays.asList из массива чисел?

Java 21. Что выведет код?

import java.util.Arrays;

class Demo {
public static void main(String[] args) {
int[] numbers = {1, 2, 3};

var list = Arrays.asList(numbers);

System.out.println(list.size());
}
}


👾 — 3
👍 — 1
🥰 — 0
⚡️ — Ошибка компиляции

Ответ: 👍 — 1.

Метод получает один объект — массив int[]. Его элементы не превращаются автоматически в отдельные объекты Integer. Поэтому список содержит один массив. Для Integer[] результат был бы другим: список содержал бы три числа.

Документация: Arrays.asList

➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1👾1