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

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

Обратная связь: @proglibrary_feedback_bot

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
JSP Expression Language (EL) — скриптовый язык выражений, который позволяет получить доступ к Java компонентам (JavaBeans) из JSP. Начиная с JSP 2.0 используется внутри JSP тегов для отделения Java кода от JSP для обеспечения лёгкого доступа к Java компонентам, уменьшая при этом количество кода Java в JSP-страницах, или даже полностью исключая его.

Развитие EL происходило с целью сделать его более простым для дизайнеров, которые имеют минимальные познания в языке программирования Java. До появления языка выражений, JSP имел несколько специальных тегов таких как скриптлеты (англ.), выражения и т. п. которые позволяли записывать Java код непосредственно на странице. С использованием языка выражений веб-дизайнер должен знать только то, как организовать вызов соответствующих java-методов.

Язык выражений JSP 2.0 включает:
☕️ Создание и изменение переменных.
☕️ Управление потоком выполнения программы: ветвление, выполнение различных типов итераций и т.д.
☕️ Упрощенное обращение к встроенным JSP-объектам.
☕️ Возможность создавать собственные функции.

Язык выражений используется внутри конструкции ${ ... }. Подобная конструкция может размещаться либо отдельно, либо в правой части выражения установки атрибута тега.
#вопросы_с_собеседований
Что такое «нормализация»?

Нормализация - это процесс преобразования отношений базы данных к виду, отвечающему нормальным формам (пошаговый, обратимый процесс замены исходной схемы другой схемой, в которой наборы данных имеют более простую и логичную структуру).

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

Оба метода являются способами подачи задачи в пул потоков, но между ними есть небольшая разница.

execute(Runnable command) определён в интерфейсе Executor и выполняет поданную задачу и ничего не возвращает.

submit() – перегруженный метод, определённый в интерфейсе ExecutorService. Способен принимать задачи типов Runnable и Callable и возвращать объект Future, который можно использовать для контроля и управления процессом выполнения, получения его результата.
Почему Java?

— Профессия Java-разработчик занимает 1 место в топ-50 востребованных профессий дистанционной работы по данным исследования Министерства экономического развития РФ;

— Зарплата доходит до 340.000₽ в месяц;

— Дефицит специалистов.

Все еще не уверены? Тогда запишитесь на бесплатную консультацию в Skypro. Там вам подробно расскажут о том, кому и почему подойдет профессия Java разработчик.

В чем особенность Skypro?

— После обучения студенты получают диплом государственного образца;

— Специалисты Skypro помогают с трудоустройством;

— У студентов будет целых два готовых проекта для портфолио;

— Skypro предоставляет пожизненный доступ к курсу и многое другое.

🥵 Успейте записаться на бесплатную консультацию и получить скидку 10% по промокоду “УЧИСЬ”
https://go.sky.pro/javaproglib_skypro1
#вопросы_с_собеседований
Приведите примеры структурных шаблонов проектирования.
👁👁 11 советов для программиста, которые помогут сохранить зрение при длительной работе за компьютером

Делимся советами, как айтишнику сохранить здоровье глаз при работе за компьютером.

https://proglib.io/sh/zSksJ948QD
Устали ждать ответов после собеседований? Получите работу за один день на Java day offer

Международная компания Lineate ищет junior/middle-специалистов на проекты по разработке и внедрению высоконагруженных сервисов, систем сбора, управления, визуализации и анализа данных.

Работу можно получить за один день — запоминайте план действий.

1. Заполнить анкету на сайте и получить письмо с заданием.
2. Отправить тестовое до 22 февраля включительно.
3. Пройти два этапа интервью 26 февраля — ответ придет в тот же день.

От вас: опыт работы от двух лет, знания Spring Framework и готовность общаться с заказчиками на английском.

От Lineate: долгосрочные проекты, гибкий график, современный стек технологий, обучение и другое.

За подробностями переходите по ссылке.
🐘 Руководство по SQL для начинающих. Часть 1: создание базы данных, таблиц и установка связей между таблицами

Пошаговая инструкция по установке, настройке и наполнению базы данных PostgreSQL с помощью pgAdmin и SQL-запросов.

https://proglib.io/sh/7tl9sATS2f
Совместный митап X5 Tech и Слёрма по Keycloak

Keycloak — опенсорсный продукт для настройки уровня безопасности в веб-приложениях. Еще полтора года назад о нём почти не было слышно, а сегодня все больше компаний указывают в требованиях знание и опыт работы с ним.

Мы не можем игнорировать это, поэтому вместе с коллегами из X5 Tech решили провести митап по Keycloak.

17 февраля в 19:00 по мск расскажем о возможностях и перспективах Keycloak, научим работать с кастомными плагинами и настраивать Token Exchange.

Кому будет полезно:
❗️DevOps-инженерам — поймёте, как минимизировать рутинные задачи.
❗️Разработчикам — узнаете, как ускорить разработку и сосредоточиться на фичах.
❗️Тимлидам и техническим директорам — сможете упростить реализацию защиты приложений.

Участие бесплатное — регистрируйтесь по ссылке: https://slurm.club/34Aluid
GitHub For Dummies (2019)
Авторы: Sarah Guthals, Phil Haack
Количество страниц: 368

После того, как вы изучите основы программирования, следующим шагом будут обмен опытом, обучение у других профессионалов в области программирования или совместная работа в группах разработчиков. GitHub - это сообщество для облегчения совместной работы над проектами, и GitHub For Dummies может стать следующим шагом в вашем пути в карьере разработчика. Эта книга, написанная инженером GitHub, содержит подробные сведения о том, как он работает и как вы можете использовать его, чтобы стать более эффективным, полезным и ценным членом любой команды разработчиков.

Скачать книгу
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований Приведите примеры структурных шаблонов проектирования.
Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.
#вопросы_с_собеседований
Как создать собственный протокол сериализации?
Для создания собственного протокола сериализации достаточно реализовать интерфейс Externalizable, который содержит два метода:

public void writeExternal(ObjectOutput out) throws IOException;
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
#вопросы_с_собеседований
Какие основные методы присутствуют в классе HttpServlet?
☕️ doGet() - для обработки HTTP запросов GET;
☕️ doPost() - для обработки HTTP запросов POST;
☕️ doPut() - для обработки HTTP запросов PUT;
☕️ doDelete() - для обработки HTTP запросов DELETE;
☕️ doHead() - для обработки HTTP запросов HEAD;
☕️ doOptions() - для обработки HTTP запросов OPTIONS;
☕️ doTrace() - для обработки HTTP запросов TRACE.
Твой друг — опытный Java-разработчик?
Порекомендуй его на работу в Сбере и получи 80 000 рублей!

Мы ищем специалиста уровня Middle или Senior с опытом от 2 лет. Вакансии открыты в Москве, Санкт-Петербурге и Новосибирске.

Как получить вознаграждение:
1) отправь контакты друга,
2) дождись, пока он пройдёт отбор и испытательный срок,
3) получи 80 000 рублей!

Узнать подробности и порекомендовать друга: https://u.to/zBwCHA
Приведите примеры поведенческих шаблонов проектирования.

Цепочка обязанностей (Chain of responsibility) - Предназначен для организации в системе уровней ответственности.
Команда (Command) - Представляет действие. Объект команды заключает в себе само действие и его параметры.
Интерпретатор (Interpreter) - Решает часто встречающуюся, но подверженную изменениям, задачу.
Итератор (Iterator) - Представляет собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого + из объектов, входящих в состав агрегации.
Посредник (Mediator) - Обеспечивает взаимодействие множества объектов, формируя при этом слабую связанность и избавляя объекты от необходимости явно ссылаться друг на друга.
Хранитель (Memento) - Позволяет, не нарушая инкапсуляцию зафиксировать и сохранить внутренние состояния объекта так, чтобы позднее восстановить его в этих состояниях.
Наблюдатель (Observer) - Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом событии.
Состояние (State) - Используется в тех случаях, когда во время выполнения программы объект должен менять своё поведение в зависимости от своего состояния.
Стратегия (Strategy) - Предназначен для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости.
Шаблонный метод (Template method) - Определяет основу алгоритма и позволяет наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.
Посетитель (Visitor) - Описывает операцию, которая выполняется над объектами других классов. При изменении класса Visitor нет необходимости изменять обслуживаемые классы.
Мы ищем человека в команду контента на позицию саппорта на курс "Backend"

- Это парт-тайм работа, на моменте запуска курса она будет занимать где-то 4-5 часа в день в зависимости от количества задач, когда все будет готово, где-то 2-3

### Обязанности:

- Отвечать на вопросы студентов, которые касаются заданий и их решений
- Выполнение контент задач (написание конспектов по лекциям, дублирование их в Notion и на образовательную платформу, наполнение LMS материалами курса от преподавателей, ревью контента)

### Требования:

- Владеть базовыми инструментами для прохождения курса. С перечнем требований можно ознакомиться на сайте:

Backend | karpov.courses

- Иметь опыт работы в сфере Backend
- Знать Java
- Быть на связи в течение рабочего дня
- Быть заинтересованным в работе в сфере онлайн обучения
- Также быть заинтересованным в прохождении курса, так как обязательно надо будет его прорешать 😉

ЗП: по договоренности

Бонус: саппорт сможет бесплатно пройти наш курс

Отправить резюме: @malikovaj
📈 Big O нотация: что это такое и почему ее обязательно нужно знать каждому программисту

Чем отличается структура данных от абстрактного типа данных? Что такое Big O нотация и как ее применять? Мы постарались ответить на эти вопросы в данной статье.

https://proglib.io/sh/UTxeVEoj27