Java библиотека
история за 25 днейобновляется раз в 6 ч – 3 дняКниги, статьи, мемы и многое другое для Java программиста! По сотрудничеству и рекламе: https://t.me/NadikaKir или в ЛС сообщества ВК https://vk.com/javatutorial Канал в перечне РКН: https://vk.cc/cJrT4A Мы на бирже: https://telega.in/c/javalib/ Сообщество VK https://vk.com/javatutorial
Покупал рекламу в…
30 дней · обнаруженные размещения
Размещений не найдено
Это не означает, что рекламы не было.
Включая размещения без erid. Оплата не подтверждена. Как определяем
Продавал рекламу…
30 дней · обнаруженные размещения
Размещений не найдено
Это не означает, что рекламы не было.
Включая размещения без erid. Оплата не подтверждена. Как определяем
Динамика и события
Маркеры: «@» — упоминание в другом канале, «Р» — рекламный пост с erid
| Дата | Подписчики |
|---|---|
| 17.10.2026 | 1 385 |
| 18.10.2026 | 1 385 |
| 19.10.2026 | 1 387 |
| 20.10.2026 | 1 387 |
| 21.10.2026 | 1 387 |
| 22.10.2026 | 1 387 |
| 23.10.2026 | 1 389 |
| 24.10.2026 | — |
Последние посты
- фото
retainAll изменяет исходное множество Метод оставляет в коллекции элементы, которые есть в переданной коллекции. Чтобы сохранить исходное множество, работайте с копией: var left = Set.of(1, 2, 3, 4); var right = Set.of(3, 4, 5); var intersection = new HashSet<>(left); intersection.retainAll(right); System.out.println(intersection); // элементы 3 и 4 Порядок вывода HashSet не гарантирован. Вызов retainAll на неизменяемом множестве вроде Set.of(...) завершится UnsupportedOperationException. Возвращаемый boolean сообщает, изменилась ли коллекция, а не является ли пересечение непустым. #Java Java…
Открыть в MAX- Просмотры
- 85
- ER
- —
- Реакции
- —
- фото
NullPointerException: явно задайте контракт Null-безопасность начинается с договора о данных. Если аргумент обязателен, проверяйте его на границе: Objects.requireNonNull(user, "user"); Objects.requireNonNull(user.getName(), "user.name"); Для сравнения двух nullable-значений используйте Objects.equals(a, b). Вызов "ready".equals(value) тоже безопасен для nullable value. String.valueOf(obj) для null-ссылки типа Object вернёт строку "null". Это удобно при диагностике, но не исправляет отсутствующие бизнес-данные. Optional может выразить отсутствие результата. @Nullable и @NotNull полезны анализат…
Открыть в MAX- Просмотры
- 166
- ER
- —
- Реакции
- —
- фото
LLM: инструкции и контекст решают разные задачи Промпт задаёт задачу, ограничения и формат ответа. Контекст предоставляет данные, на которые модель может опираться: документы, код, результаты поиска и инструменты. Для помощника по Java полезно явно передать версию JDK, сигнатуру метода, сообщение ошибки и небольшой пример входа. Просьба «исправь код» без этих данных вынуждает модель угадывать. Если результат нужен программе, задайте схему ответа и проверяйте её на своей стороне. Валидный JSON подтверждает формат, но не истинность содержимого. Документы из поиска и содержимое репозитория следуе…
Открыть в MAX- Просмотры
- 210
- ER
- —
- Реакции
- —
- фото
Testcontainers: настоящая БД в интеграционных проверках Мок репозитория не проверяет SQL и особенности конкретной СУБД. Testcontainers поднимает временные контейнеры с PostgreSQL, MySQL и другими зависимостями рядом с проверяемым приложением. Это полезно для миграций, ограничений таблиц, транзакций и запросов, поведение которых зависит от диалекта БД. Для запуска нужен доступ к совместимому контейнерному окружению. Практический порядок: поднимите нужную версию БД, примените миграции и передайте приложению адрес и учётные данные контейнера. Окружение можно создавать на проверку или на набор — э…
Открыть в MAX- Просмотры
- 227
- ER
- —
- Реакции
- —
- фото
План изучения Java: от языка к сервису План удобнее строить вокруг работающих проектов, а срок подбирать под свою нагрузку. «6–12 месяцев» — ориентир, а не обещание трудоустройства. 1. Язык: типы, ООП, исключения, коллекции, generics. Напишите консольное приложение с сохранением данных. 2. Стандартная библиотека: файлы, даты, Stream API и основы многопоточности. 3. Хранение данных: SQL, JDBC, затем JPA и транзакции. 4. Веб: Spring Boot, REST API, валидация и обработка ошибок. 5. Качество: JUnit, интеграционные проверки, Git, Maven или Gradle. 6. Эксплуатация: Docker, конфигурация, логи, метрик…
Открыть в MAX- Просмотры
- 252
- ER
- —
- Реакции
- —
- фото
Log4j 2: куда отправлять логи Appender отвечает за место назначения: консоль, файл, сокет или другое хранилище. Layout задаёт формат записи. Минимальная консольная конфигурация: <Configuration> <Appenders> <Console name="out" target="SYSTEM_OUT"> <PatternLayout pattern="%level %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="out"/> </Root> </Loggers> </Configuration> Для ротации файлов в Log4j 2 используйте RollingFile с политикой ротации. Примеры с DailyRollingFileAppender из Log4j 1 нельзя переносить в конфигурацию Log4j 2…
Открыть в MAX- Просмотры
- 266
- ER
- —
- Реакции
- —
- фото
👩💻 Большая база для подготовки к Java-собеседованиям Полезный GitHub-репозиторий с базой по структурам данных, алгоритмам и сложности. Внутри: 🫡 Linked List, Stack и Queue; 🫡 Trees, Heap и Hash Map; 🫡 Графы и обходы DFS/BFS; 🫡 Алгоритмы сортировки; 🫡 Dijkstra, Bellman-Ford и Floyd-Warshall; 🫡 Greedy Algorithms; 🫡 Оценка временной сложности; 🫡 Ссылки на задачи, книги и видеолекции. ⛓ Ссылка на репозиторий Java Библиотека | Мы в Телеграм
Открыть в MAX- Просмотры
- 277
- ER
- 0,4%
- Реакции
- 1
- фото
GC есть, а утечки памяти в Java всё равно возможны Сборщик мусора освобождает недостижимые объекты. Если ненужный объект всё ещё удерживается сильной ссылкой, он остаётся в памяти. Статические коллекции, кэши и слушатели могут удерживать объекты дольше необходимого. Коллекция, которая постоянно растёт без удаления элементов, увеличивает потребление памяти. Отписывайте слушатели, ограничивайте кэши и удаляйте ненужные ссылки. Слабые ссылки используйте там, где это соответствует логике приложения. Объект больше не нужен — ещё не значит, что GC может его удалить. Java Библиотека | Мы в Телегр…
Открыть в MAX- Просмотры
- 293
- ER
- 0,3%
- Реакции
- 1
- Просмотры
- 298
- ER
- 1,3%
- Реакции
- 4
- фото
Топ-3 товаров через Map.merge Есть названия покупок с повторами. Сначала считаем частоты, затем сортируем записи: Map<String, Integer> counts = new HashMap<>(); for (String item : purchases) { counts.merge(item, 1, Integer::sum); } counts.entrySet().stream() .sorted(Map.Entry.<String, Integer> comparingByValue().reversed() .thenComparing(Map.Entry.comparingByKey())) .limit(3) .forEach(System.out::println); Второй критерий делает порядок при одинаковой частоте предсказуемым. Пример предполагает непустые, ненулевые названия. Для большого количества разных товаров…
Открыть в MAX- Просмотры
- 299
- ER
- —
- Реакции
- —
Показано 10
Данные: публичные посты и страницы канала в MAX. Метрики версии v1, срез 24.10.2026. Как мы считаем.