Библиотека Java разработчика
10.8K subscribers
1.14K photos
564 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


По всем вопросам @evgenycarter

РКН clck.ru/3KoGeP
Download Telegram
📌 ITeaConf бесплатная онлайн конференция на которой будет представлена секция по Java:

👨‍💻 В нативный код из уютного мира Java: путешествие туда и обратно
Обсудим разные подходы к интеропу между Java и нативным мирами: от классического JNI до грядущей Panama и альтернативных технологий в GraalVM.
Иван Углянский - Huawei

👨‍💻 Загадки JPA и их разоблачение
В докладе рассмотрим практические ситуации при работе с JPA, которые, могут привести к неожиданным результатам.
Андрей Беляев - Haulmont Technology

⚠️ Так же на конференции можно посмотреть доклады по: Python, Ruby, Rust, Go, Node.js, .NET, Frontend 

Дата: 14 ноября
Формат: Онлайн
Регистрация
.RUПОР – новый Telegram-канал о доменных именах и доменном бизнесе, технологиях и новостях доменной индустрии. 

Рассказываем о самом важном и интересном: доменах и их применении в интернет-бизнесе, работе DNS, управлении интернетом, актуальной статистике доменного рынка, новостях и событиях российской и мировой доменной индустрии.

Подписывайтесь на t.me/domainrupor, чтобы быть в курсе!
Расскажи о своем OpenSource-решении на самой крупной IT-конференции в России!

 Мы открываем приём заявок на участие в OpenSource-трибуне. Участники этого проекта смогут рассказать многотысячному сообществу хайлоадеров о своих решениях.

 Оставить заявку: https://www.highload.ru/moscow/2021/opensource?utm_source=tg&utm_medium=BJava&utm_term=2021-11-07

 Заявки на участие принимаются до 1 декабря. В январе Программный комитет выберет 10 лучших OpenSource-решений и пригласит их авторов выступить на HighLoad++ (17 и 18 марта в Москве).
Стильный Java
Код который работает всегда и везде,
Марко Фаэлла (2021)

В современном мире разработки успешность приложения уже не определяется параметром «просто работает». Хороший программист должен знать возможности языка, практические приемы проектирования и платформенные средства для достижения максимальной производительности и жизнеспособности программ. Эта книга написана для разработчиков, которые хотят создавать качественный софт. Затронуты все ключевые показатели ПО: скорость, затраты памяти, надежность, удобочитаемость, потоковая безопасность, универсальность и элегантность. Реальные задачи и прикладные примеры кода на Java помогут надежно усвоить концепции.

Скачать книгу
В каком случае требуется переопределять метод service()?
Метод service() переопределяется, когда необходимо, чтобы сервлет обрабатывал все запросы (и GET, и POST) в одном методе.

Когда контейнер сервлетов получает запрос клиента, то происходит вызов метода service(), который в зависимости от поступившего запроса вызывает или метод doGet() или метод doPost().
Есть ли смысл определять для сервлета конструктор? Каким образом лучше инициализировать данные?
Большого смысла определять для сервлета конструктор нет, т.к. инициализировать данные лучше не в конструкторе, а переопределив метод init(), в котором имеется возможность доступа к параметрам инициализации сервлета через использование объекта ServletConfig.
Эксперты NIX в прямом эфире расскажут о полезных инструментах Java. Присоединяйся к онлайн-лекциям!

Когда:
16 ноября в 18:00
Где: на YouTube-канале NIX

В программе:
«Micronaut — не спрингом единым»
, Иван Козиков, Java-разработчик
Во время лекции ты узнаешь, как упростить и ускорить разработку микросервисов в облаке с помощью фреймворка Micronaut.

«Как я перестал бояться OAUTH2 и полюбил KeyCloak», Никита Роатэ, Java-разработчик
Эксперт расскажет, где и когда ты можешь столкнуться с аутентификацией и авторизацией. Ты узнаешь, какие проблемы могут возникнуть в процессе их внедрения и как использовать Keycloak.

Для кого:
🔹 Junior-разработчикам с базовыми знаниями Java (студенты и выпускники технических специальностей)
🔹 Опытным специалистам, которые разбираются в микросервисной архитектуре

Чтобы не пропустить начало трансляции, жми 🔔
Задавай спикерам все интересующее тебя вопросы и узнай больше о полезных инструментах Java-разработчика.

Увидимся в эфире 😉
Мега подборка каналов для программистов 🎯

https://t.me/progjob Вакансии для программистов

Системное администрирование 📌
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/linux_sup Новости и информация из мира Linux
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов

Программирование, фронтенд, Биг дата, мобильная р-ка, книги 📌
https://t.me/game_devv GameDev: разработка игр
https://t.me/Angular_Vuejs Angular Vue js React
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/Frontend_now Все для фронтендеров
https://t.me/react_prog Все что связано с reactjs
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/developer_mobila Мобильная разработка
https://t.me/Welcome_Python Добро пожаловать в мир Python
https://t.me/BookPython Библиотека Python разработчика
https://t.me/programmist_of Книги по программированию
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_sup Программирование на Java
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/imobile_dev Все по мобильной разработке: iOS, Android
https://t.me/database_group Все про базы данных
https://t.me/cloud_comp Облачные сервисы, вычисления и безопасность
https://t.me/bigdata_world Data Science, Big Data, Machine Learning

IT новости 📌
https://t.me/htech_news Новости HighTech
https://t.me/all_itnews IT новости на английском
https://t.me/gmorning_news Последнии новости из мира науки
https://t.me/youtips_tricks Технологические советы и хитрости

Шутки программистов 📌
https://t.me/dev_jokes Daily Dev Jokes
https://t.me/itumor ITumor | программисты шутят

SMM, Seo, Wordpress 📌
https://t.me/allsocial_news SMM / Советы, Новости, Лайфхаки
https://t.me/seo_go Новости по SEO продвижению сайтов
https://t.me/news_wordpress Канал о самой популярной CMS

Защита, взлом, безопасность 📌
https://t.me/crypto_security_lab Материалы по информационной безопасности
https://t.me/thehaking Канал о кибербезопасности
https://t.me/Hackme_news Новости из мира хакинга

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/goodw_design Статьи по Веб дизайну

Должен знать 📌
https://t.me/UchuEnglish Английский с нуля
https://t.me/Pomatematike Канал по математике

Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика

Крипта 📌
https://t.me/crypto_moneygo Канал о крипте, новости, инсайды
https://t.me/bitkoinoff Нгвости криптовалют

VR, робототехника 📌
https://t.me/AR_VR_vision Компьютерное зрение, виртуальная реальность
https://t.me/robotics_scince Канал о Робототехнике и автоматизации


https://t.me/network_arch Network architecture and Administration
https://t.me/easy_program Программирование для новичков
https://t.me/testin_new Тестирование
https://t.me/IoTprog Интернет вещей
https://t.me/generalprog General programming
https://t.me/Hware_news Цифровые тенденции
https://t.me/dev_ops_info Devops
Почему необходимо переопределить только init() метод без аргументов?
Метод init() переопределяется, если необходимо инициализировать какие-то данные до того как сервлет начнет обрабатывать запросы.

При переопределении метода init(ServletConfig config), первым должен быть вызван метод super(config), который обеспечит вызов метода init(ServletConfig config) суперкласса. GenericServlet предоставляет другой метод init() без параметров, который будет вызываться в конце метода init(ServletConfig config).

Необходимо использовать переопределенный метод init() без параметров для инициализации данных во избежание каких-либо проблем, например ошибку, когда вызов super() не указан в переопределенном init(ServletConfig config).
👍1
Какие наиболее распространенные задачи выполняются в контейнере сервлетов?

Поддержка обмена данными. Контейнер сервлетов предоставляет легкий способ обмена данными между веб клиентом (браузером) и сервлетом. Благодаря контейнеру нет необходимости создавать слушателя сокета на сервере для отслеживания запросов от клиента, а также разбирать запрос и генерировать ответ. Все эти важные и комплексные задачи решаются с помощью контейнера и разработчик может сосредоточиться на бизнес логике приложения.

Управление жизненным циклом сервлетов и ресурсов. Начиная от загрузки сервлета в память, инициализации, внедрения методов и заканчивая уничтожением сервлета. Контейнер так же предоставляет дополнительные утилиты, например JNDI, для управления пулом ресурсов.

Поддержка многопоточности. Контейнер самостоятельно создает новую нить для каждого запроса и предоставляет ей запрос и ответ для обработки. Таким образом сервлет не инициализируется заново для каждого запроса и тем самым сохраняет память и уменьшает время до обработки запроса.

Поддержка JSP. JSP классы не похожи на стандартные классы джавы, но контейнер сервлетов преобразует каждую JSP в сервлет и далее управляется контейнером как обычным сервлетом.

Различные задачи. Контейнер сервлетов управляет пулом ресурсов, памятью приложения, сборщиком мусора. Предоставляются возможности настройки безопасности и многое другое.
servlet-filter.zip
194 KB
Исходный код примера, рассмотренного в посте выше☝️.