Java: не создавайте тяжёлые объекты раньше времени Если объект дорогой в создании, но нужен только в редких сценариях, eager initialization может зря тратить время и память. Вместо этого используйте lazy initialization: private HeavyAnalyzer analyzer; private HeavyAnalyzer analyzer() { if (analyzer == null) { analyzer = new HeavyAnalyzer(); } return analyzer; } Так HeavyAnalyzer создастся только при первом реальном…
Показываем только площадки, которые есть в нашей базе: часть соцсетей мы пока не собираем. У каждой площадки своя страница — ссылка в её блоке.
Java
Сообщество создано для тех кто хочет научиться программированию на Java с нуля и до профи. На данной странице находятся книги, видео и статьи по Java. По поводу рекламы и авторских прав писать в лс сообщества :)
Вашу рекламу в этом канале увидит до 6 тыс. человек
Заказать рекламу →Динамика подписчиков
с 20 июля 2026 по 12 октября 2026 · минимум 73 227 · максимум 73 585
Кто рекламировался за полгода
Рекламодатель определён по маркировке рекламы в постах канала.
Публикации
Концепции Spring Security: OAuth2 Resource Server С одной декларацией OAuth2ResourceServer Spring Security будет: 1- Извлекать заголовок Authorization: Bearer <token> из каждого запроса 2- Валидировать подпись токена через публичный ключ Authorization Server’а (полученный через JWKS URI) 3 Проверять claims: срок действия (exp), issuer и audience 4- Заполнять SecurityContext аутентифицированным principal’ом
Нововведения Java 27 Java 27 вышла в релиз. В него вошли четыре узконаправленные правки и пять превью/инкубаторов. Разбираем изменения в сборщике мусора, улучшения JFR, постквантовый TLS 1.3 и компактные заголовки объектов, экономящие треть памяти.
Spring Boot: с org.hibernate.SQL=DEBUG можно получить более детальный вывод Hibernate-запросов прямо в логах.
👩💻 HTTP-сервер на чистой Java за 30 минут Приглашаем на открытый урок. 🗓 21 сентября в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Java разработчик. Продвинутый уровень». Разберем, как браузер общается с сервером, и создадим работающий HTTP-сервис без Spring и сторонних библиотек. О чем поговорим: ✔️ Как устроен HTTP-запрос ✔️ Создадим сервер на Java ✔️ Добавим несколько адресов ✔️ Откроем результат в…
N+1 в Spring Boot выглядит безобидно, пока прод не начинает молиться на базу данных. Классический сценарий: Вы грузите список заказов: orderRepository.findAll() А потом в цикле обращаетесь к order.getItems(). Hibernate сначала делает один запрос за заказами, а потом ещё по одному запросу на каждый заказ, чтобы достать items. 100 заказов = 101 SQL-запрос. И вот здесь спасает [id177136360|@EntityGraph]. Он позволяет…
Шпаргалка по аннотациям Spring Boot! Например, [id165603958|@RestController] используется для создания REST API, @Autowired — для внедрения зависимостей, а [id49211602|@Transactional] помогает управлять транзакциями. На картинке — основные аннотации Spring Boot, Spring MVC, JPA, Security, Validation и тестирования, которые чаще всего используются в реальных проектах. Сохрани, чтобы не потерять!
Микросервисы — плохой выбор по умолчанию для 94% команд. Зачем разбивать приложение на набор сервисов, которым нужно общаться через сеть. На бумаге это выглядит как «правильный» подход. Масштабирование звучит привлекательно. Но на практике я видел, как это ломается, шесть раз. Команды из 5 инженеров поднимали 11 сервисов с несколькими очередями сообщений. Всё становилось медленнее. Деплой, который занимал минуты,…
Программируем на Java. 5-е межд. изд. (2023) PDF, ePUB Неважно, кто вы – разработчик ПО или пользователь, в любом случае вы слышали о языке Java. В этой книге вы на конкретных примерах изучите основы Java, API, библиотеки классов, приемы и идиомы программирования. Особое внимание авторы уделяют построению реальных приложений. Вы освоите средства управления ресурсами и исключениями, а также познакомитесь с новыми…
Spring Boot: используйте [id403128|@Async] только для небольших задач на оффлоадинг и только с явно заданным исполнителем.
Java библиотека
Книги, статьи, мемы и многое другое для Java программиста! Канал в перечне РКН: https://vk.cc/cJrT4A Мы на бирже Сообщество VK https://vk.com/javatutorial
Динамика подписчиков
с 20 июля 2026 по 12 октября 2026 · минимум 30 600 · максимум 30 963
Кто рекламировался за полгода
Рекламодатель определён по маркировке рекламы в постах канала.
Публикации
Spring Boot 4: EnvironmentPostProcessor сменил пакет Новый: org.springframework.boot.EnvironmentPostProcessor Старый пакет временно сохранён, но помечен как устаревший. Обновите импорты в коде и регистрацию в spring.factories . Полезные ресурсы по Java 👩💻 | Наш канал в MAX 🟪
👩💻 Что нового появилось в Java 27 Релиз небольшой, но несколько изменений JVM действительно заслуживают внимания: 🫡 Compact Object Headers теперь включены по умолчанию и уменьшают заголовок объекта с 12 до 8 байт; 🫡 G1 стал стандартным сборщиком мусора во всех окружениях; 🫡 TLS 1.3 получил гибридный постквантовый обмен ключами; 🫡 JFR автоматически скрывает пароли, токены, API-ключи и другие чувствительные значения;…
Spring AI показал, как сделать RAG заметно умнее обычного vector search. Проблема классического RAG: похожий документ ещё не значит полезный. Новый пайплайн делает так: Question → Rewrite → MultiQuery → Vector Search → Jev Filter → Rerank → LLM Jev проверяет каждый найденный chunk: есть ли там реальный ответ, противоречие или prompt injection. В демо vector search нашёл 6 фрагментов, но до модели дошли только 2…
Тестируйте крайние случаи: null, пустые значения и границы часто скрывают баги Проверки только успешного сценария могут пропустить NullPointerException . Пустые списки и списки из одного элемента могут выявить ошибки, незаметные на обычных данных. Тесты крайних случаев также документируют ожидаемое поведение кода. Полезные ресурсы по Java 👩💻 | Наш канал в MAX 🟪
Spring Boot 4: переименовано свойство преобразования исключений Было: spring.dao.exceptiontranslation.enabled Стало: spring.persistence.exceptiontranslation.enabled Используйте spring-boot-properties-migrator , чтобы обнаружить устаревшее свойство при миграции. Полезные ресурсы по Java 👩💻 | Наш канал в MAX 🟪
Следим за появлением файлов в папке через WatchService! Создадим наблюдатель и зарегистрируем каталог. Папка должна существовать заранее: Path dir = Path.of("incoming"); try (WatchService watcher = FileSystems.getDefault().newWatchService()) { dir.register(watcher, ENTRY_CREATE, ENTRY_MODIFY); Константы ENTRY_CREATE и ENTRY_MODIFY берутся из StandardWatchEventKinds. try-with-resources закроет наблюдатель при выходе…
👨💻 Фронтенд с AI: что можно делегировать агентам 5 октября , стартует конференция Podlodka Frontend Crew — сезон о том, как применять AI во фронтенд-разработке на практике. Участники конференции узнают: • Как находить prompt injection и противостоять таким атакам; • Какие подходы помогают повысить доверие к результатам агентской разработки; • Как проводить ревью кода, созданного AI-агентами; • Как AI помогает…
Почему один и тот же Java-файл .class запускается на Windows, Linux и macOS без перекомпиляции? Секрет не в самом языке Java, а в JVM . Вот какой путь проходит программа: Hello.java → javac → Hello.class (байткод) → JVM → машинный код → выполнение программы Именно этот дополнительный уровень абстракции даёт Java её знаменитую возможность: «Написал один раз — запускай где угодно» . Когда понимаешь эту цепочку,…
Книги для Java программиста
Вся самая новая и полезная литература для Java разработчиков! или в ЛС сообщества…
Динамика подписчиков
с 20 июля 2026 по 12 октября 2026 · минимум 1 843 · максимум 2 096
Кто рекламировался за полгода
Рекламодатель определён по маркировке рекламы в постах канала.
Публикации
Essential Test-Driven Development_Final.epub
Essential Test-Driven Development_Final.pdf
Essential Test-Driven Development (2026) PDF, ePUB Techniques and Insights to Deliver High-Quality, Maintainable Code. Test-Driven Development (TDD) is not only a way to test your code but a complete method of crafting software: How you think about code, the act of writing code, and how you continuously interact with your team's code. Essential Test-Driven Development guides you through writing tests before code,…
Как перейти от монолита к микросервисам без лишнего риска? 🎥 6 октября в 20:00 МСК на открытом уроке разберём практические подходы к переходу от монолита на микросервисы: как определить границы сервисов, выбрать стратегию миграции и не остановить разработку. На примере покажем, как работать со strangler pattern, декомпозировать систему по доменам, организовать работу с данными и транзакциями и избежать главной…
Культивация программиста.pdf
Культивация программиста. Становление императором Java. Секта Java Core (2026) PDF Что, если изучение Java было бы не скучным учебником, а путём культивации? Перед вами необычная книга для тех, кто хочет начать программировать, но устал от сухих объяснений, однотипных примеров и ощущения, что код — это набор непонятных символов. В книге есть не только теория, но и практические испытания, повреждённые свитки с…
Почему одни ИИ-агенты помогают разработчикам экономить время, а другие требуют постоянной доработки? При создании агентных систем важно не только подключить LLM, но и правильно организовать логику работы агентов. Без единых подходов разработка замедляется: одни и те же решения приходится создавать заново, а поведение системы становится сложнее контролировать. На открытом уроке 1 октября в 20:00 МСК разберем, как…
Безопасные_и_надежные.pdf
Безопасные и надежные системы: Лучшие практики проектирования, внедрения и обслуживания как в Google (2025) PDF Может ли быть надежной небезопасная система? Можно ли считать безопасной ненадежную систему? Безопасность имеет решающее значение для разработки и эксплуатации масштабируемых систем в реальных условиях, поскольку вносит важный вклад в качество, производительность и доступность продукта. В этой книге…
Создание кроссплатформенного приложения с GUI на Rust: От идеи до реальности Electron-приложения тяжелые, потребляют много памяти, а на Rust можно собрать легкое, быстрое и безопасное десктоп-приложение, которое будет работать на Windows, macOS и Linux. Tauri — это фреймворк, который позволяет использовать веб-технологии (HTML/CSS/JS) для интерфейса и мощь Rust для бэкенда. Но чтобы собрать работающий продукт, а не…