Библиотека джависта | Java, Spring, Maven, Hibernate
24.8K subscribers
1.88K photos
38 videos
42 files
2.67K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
#вопросы_с_собеседований
Как уведомить объект в сессии, что сессия недействительна или закончилась?

Чтобы быть уверенным в том, что объект будет оповещён о прекращении сессии, нужно реализовать интерфейс javax.servlet.http.HttpSessionBindingListener. Два метода этого интерфейса: valueBound() и valueUnbound() используются при добавлении объекта в качестве атрибута к сессии и при уничтожении сессии соответственно.
#вопросы_с_собеседований
Как организовать подключение к базе данных, обеспечить журналирование в сервлете?

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

Журналирование подключается к сервлету стандартным для логгера способом (например для log4j это может быть property-файл или XML-конфигурация) , а далее эта информация используется при настройке соответствующего context listener.
📜 Основные SQL-команды и запросы с примерами, которые должен знать каждый разработчик

В небольшом обзоре разберем наиболее важные команды языка запросов SQL и сделаем шаг в сторону грамотного изучения работы с базами данных.

🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
Что имеет более высокий уровень абстракции - класс, абстрактный класс или интерфейс?

Интерфейс.
Что из нижеперечисленного является в Java ключевым словом?
Anonymous Quiz
36%
goto
16%
array
26%
null
22%
true
Текущая дата и время в Java

Получить текущую дату и время в Java достаточно легко. Вы можете использовать простой объект date вместе с методом toString(), чтобы вывести текущую дату и время.
#вопросы_с_собеседований
К каким конструкциям Java применим модификатор static?

• полям;
• методам;
• вложенным классам;
• членам секции import.
Чем отличается sendRedirect() от forward()?

forward():
• Выполняется на стороне сервера;
• Запрос перенаправляется на другой ресурс в пределах того же сервера;
• Не зависит от протокола клиентского запроса, так как обеспечивается контейнером сервлетов;
• Нельзя применять для внедрения сервлета в другой контекст;
• Клиент не знает о фактически обрабатываемом ресурсе и URL в строке остается прежним;
• Выполняется быстрее метода sendRedirect();
• Определён в интерфейсе RequestDispatcher.

sendRedirect():
• Выполняется на стороне клиента;
• Клиенту возвращается ответ 302 (redirect) и запрос перенаправляется на другой сервер;
• Может использоваться только с клиентами HTTP;
• Разрешается применять для внедрения сервлета в другой контекст;
URL адрес изменяется на адрес нового ресурса;
• Медленнее forward() т.к. требует создания нового запроса;
• Определён в интерфейсе HttpServletResponse.
Для чего в Java используются статические блоки инициализации?

Статические блоки инициализация используются для выполнения кода, который должен выполняться один раз при инициализации класса загрузчиком классов, в момент, предшествующий созданию объектов этого класса при помощи конструктора. Такой блок (в отличие от нестатических, принадлежащих конкретном объекту класса) принадлежит только самому классу (объекту метакласса Class).
#вопросы_с_собеседований
Что произойдёт, если в блоке инициализации возникнет исключительная ситуация?

Для нестатических блоков инициализации, если выбрасывание исключения прописано явным образом требуется, чтобы объявления этих исключений были перечислены в throws всех конструкторов класса. Иначе будет ошибка компиляции. Для статического блока выбрасывание исключения в явном виде, приводит к ошибке компиляции.

В остальных случаях, взаимодействие с исключениями будет проходить так же, как и в любом другом месте. Класс не будет инициализирован, если ошибка происходит в статическом блоке и объект класса не будет создан, если ошибка возникает в нестатическом блоке.
#вопросы_с_собеседований
Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?

Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для HashMap это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.
📊🔟 ТОП-10 самых высокооплачиваемых языков программирования в 2022 году

Известная платформа по поиску работы DevJobsScanner составила список самых высокооплачиваемых языков программирования. Вместе разберемся, кто же входит в первую десятку и посмотрим, какие цифры рисуют работодатели в объявлениях, чтобы привлечь специалистов.

🔗 Основной сайт
🔗 Зеркало
🚀 IT и реальный сектор экономики: какие отрасли выстрелят через 5 лет

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

🔗 Основной сайт
🔗 Зеркало
Как одним вызовом из List получить List со всеми элементами, кроме первых и последних 3-х?

List<Integer> subList = list.subList(3, list.size() - 3);
#вопросы_с_собеседований
Какие наиболее распространенные задачи выполняются в контейнере сервлетов?

☕️ Поддержка обмена данными. Контейнер сервлетов предоставляет легкий способ обмена данными между веб клиентом (браузером) и сервлетом. Благодаря контейнеру нет необходимости создавать слушателя сокета на сервере для отслеживания запросов от клиента, а так же разбирать запрос и генерировать ответ. Все эти важные и комплексные задачи решаются с помощью контейнера и разработчик может сосредоточиться на бизнес-логике приложения.
☕️ Управление жизненным циклом сервлетов и ресурсов. Начиная от загрузки сервлета в память, инициализации, внедрения методов и заканчивая уничтожением сервлета. Контейнер так же предоставляет дополнительные утилиты, например JNDI, для управления пулом ресурсов.
☕️ Поддержка многопоточности. Контейнер самостоятельно создает новую нить для каждого запроса и предоставляет ей запрос и ответ для обработки. Таким образом сервлет не инициализируется заново для каждого запроса и тем самым сохраняет память и уменьшает время до обработки запроса.
☕️ Поддержка JSP. JSP классы не похожи на стандартные классы джавы, но контейнер сервлетов преобразует каждую JSP в сервлет и далее управляется контейнером как обычным сервлетом.
☕️ Различные задачи. Контейнер сервлетов управляет пулом ресурсов, памятью приложения, сборщиком мусора. Предоставляются возможности настройки безопасности и многое другое.
#вопросы_с_собеседований
Какие наиболее распространенные задачи выполняются в контейнере сервлетов?

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