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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Уникальный (в рамках веб-приложения) объект ServletContext реализует интерфейс javax.servlet.ServletContext и предоставляет сервлетам доступ к параметрам этого веб-приложения. Для предоставления доступа используется элемент <context-param> в web.xml:

<web-app>
...
<context-param>
<param-name>exampleParameter</param-name>
<param-value>parameterValue</param-value>
</context-param>
...
</web-app>

Объект ServletContext можно получить с помощью метода getServletContext() у интерфейса ServletConfig. Контейнеры сервлетов так же могут предоставлять контекстные объекты, уникальные для группы сервлетов. Каждая из групп будет связана со своим набором URL-путей хоста. В спецификации Servlet 3 ServletContext был расширен и теперь предоставляет возможности программного добавления слушателей и фильтров в приложение. Так же у этого интерфейса имеется множество полезных методов таких как getServerInfo(), getMimeType(), getResourceAsStream() и т.д.
Популярность языка Java растёт, востребованность разработчиков — тоже! Хочешь освоить новое направление в IT? Тогда попробуй себя в Java-разработке!

Ждём тебя тут: ✌️ https://clc.am/CqBE1g.

За 3 дня ты:

✔️ получишь базовые навыки программирования;
✔️ поймёшь, чем занимается Java-разработчик;
✔️ напишешь программу для мониторинга активности рабочего стола.

🔥 Полезными лайфхаками поделится разработчик с 15-летним опытом, директор центра SymbioWay, который находит IT-специалистов для крупнейших компаний России, — Даниил Пилипенко.

🗓 Встречаемся с 5 по 7 апреля в 16:00 по московскому времени!

🎁 Всех участников ждут подарки от издательства МИФ. А те, кто выполнят домашнюю работу, получат сертификат на 15 000 рублей на любой курс Skillbox!
FutureTask представляет собой отменяемое асинхронное вычисление в параллельном Java приложении. Этот класс предоставляет базовую реализацию Future, с методами для запуска и остановки вычисления, методами для запроса состояния вычисления и извлечения результатов. Результат может быть получен только когда вычисление завершено, метод получения будет заблокирован, если вычисление ещё не завершено. Объекты FutureTask могут быть использованы для обёртки объектов Callable и Runnable. Так как FutureTask реализует Runnable, его можно передать в Executor на выполнение.
#вопросы_с_собеседований
Приведите примеры основных шаблонов проектирования.
☕️ Делегирование (Delegation pattern) - Сущность внешне выражает некоторое поведение, но в реальности передаёт ответственность за выполнение этого поведения связанному объекту.
☕️ Функциональный дизайн (Functional design) - Гарантирует, что каждая сущность имеет только одну обязанность и исполняет её с минимумом побочных эффектов на другие.
☕️ Неизменяемый интерфейс (Immutable interface) - Создание неизменяемого объекта.
☕️ Интерфейс (Interface) - Общий метод структурирования сущностей, облегчающий их понимание.
☕️ Интерфейс-маркер (Marker interface) - В качестве атрибута (как пометки объектной сущности) применяется наличие или отсутствие реализации интерфейса-маркера. В современных языках программирования вместо этого применяются атрибуты или аннотации.
☕️ Контейнер свойств (Property container) - Позволяет добавлять дополнительные свойства сущности в контейнер внутри себя, вместо расширения новыми свойствами.
☕️ Канал событий (Event channel) - Создаёт централизованный канал для событий. Использует сущность-представитель для подписки и сущность-представитель для публикации события в канале. Представитель существует отдельно от реального издателя или подписчика. Подписчик может получать опубликованные события от более чем одной сущности, даже если он зарегистрирован только на одном канале.
🗣 45 русскоязычных подкастов для программистов

Подкасты – отличный способ отвлечься от рутинных дел и провести свободное время с пользой. Предлагаем список из 45 актуальных ресурсов на русском языке, которые будут полезны программистам.

https://proglib.io/sh/ySgBOqZxJw
☕️ Создать потомка класса Thread и переопределить его метод run();
☕️ Создать объект класса Thread, передав ему в конструкторе экземпляр класса, реализующего интерфейс Runnable. Этот интерфейс содержит метод run(), который будет выполняться в новом потоке. Поток закончит выполнение, когда завершится его метод run().
☕️ Вызвать метод submit() у экземпляра класса, реализующего интерфейс ExecutorService, передав ему в качестве параметра экземпляр класса, реализующего интерфейс Runnable или Callable (содержит метод call(), в котором описывается логика выполнения).
Хотите руководить командой разработки? Тогда записывайтесь на специальный курс от GeekBrains и AGIMA для тех, кто давно хотел перейти от middle- и senior-разработчиков к руководителям команд. Курс поможет в освоении всех необходимых компетенций, а эксперты-преподаватели поделятся инсайдами.

Программа курса рассчитана на 6 месяцев и проходит в формате видеолекций и онлайн-встреч с экспертами. При этом лекции вы можете смотреть, когда удобно.

Кому точно подойдет курс:
- Senior- и middle- разработчикам
- Начинающим руководителям команд
- Практикующим руководителям команд

Кстати, при покупке курса до 13 апреля действует скидка 30%, к тому жевы получаете еще 7 курсов в подарок: от умения считать юнит-экономику до знаний в интернет-маркетинге. Круто же!

Записаться на курс, посмотреть трейлер и подробнее ознакомиться с программой можно здесь.
#вопросы_с_собеседований
Есть класс Point{int x, y;}. Почему хэш-код в виде 31 * x + y предпочтительнее, чем x + y?
С нас крутые спикеры, полезные лекции и трудоустройство, с тебя – желание учиться и минимум год опыта коммерческой разработки на Java.

Как все проходит?
3 раза в неделю на протяжении двух месяцев тебя будут обучать Senior’ы и Teamlead’ы ведущих банков страны. Обучение можно совмещать с работой.

Чему будут учить?
На курсе будем изучать Core Java, промышленную разработку на Java, базы данных, Spring, Kafka, Kubernetes и Istio. Помимо этого еще будут практические занятия и домашние задания.

Что будет после учебы?
Трудоустройство в Цифровые привычки. Ты будешь работать над высоконагруженными,отказоустойчивыми проектами.

Пройти вступительный тест на курс: https://cutt.ly/3xOE6iS
Ответ на вопрос: https://yangx.top/javaproglib/2367

Множитель создает зависимость значения хэш кода от очередности обработки полей, что в итоге порождает лучшую хэш функцию.
☕️ 7 причин стать разработчиком на Java в 2021 году

Стремительно меняющиеся тренды, новые языки и высокие требования к коду ставят перед новичком вопрос: какой язык изучать, чтобы наверняка? Мы рекомендуем выбрать Java, несмотря на огромное
количество ультрамодных альтернатив.

https://proglib.io/sh/q8tzm6yx1V
15 апреля в 17:00 пройдет мероприятие Arrival Live, на котором команда Arrival впервые расскажет о том, как устроено автомобилестроение будущего: что находится под капотом автомобилей и в стенах фабрик компании. Не пропусти!

Предварительная регистрация поможет не забыть про митап и получить ссылку на онлайн-трансляцию, а также материалы по итогам митапа. Не пропусти – meetup.arrival.com
#вопросы_с_собеседований
Какие подклассы класса InputStream вы знаете, для чего они предназначены?
✔️InputStream - абстрактный класс, описывающий поток ввода;
✔️BufferedInputStream - буферизованный входной поток;
✔️ByteArrayInputStream позволяет использовать буфер в памяти (массив байтов) в качестве источника данных для входного потока;
✔️DataInputStream - входной поток для байтовых данных, включающий методы для чтения стандартных типов данных Java;
✔️FileInputStream - входной поток для чтения информации из файла;
✔️FilterInputStream - абстрактный класс, предоставляющий интерфейс для классов-надстроек, которые добавляют к существующим потокам полезные свойства;
✔️ObjectInputStream - входной поток для объектов;
✔️StringBufferInputStream превращает строку (String) во входной поток данных InputStream;
✔️PipedInputStream реализует понятие входного канала;
✔️PushbackInputStream - разновидность буферизации, обеспечивающая чтение байта с последующим его возвратом в поток, позволяет «заглянуть» во входной поток и увидеть, что оттуда поступит в следующий момент, не извлекая информации.
✔️SequenceInputStream используется для слияния двух или более потоков InputStream в единый.
#вопросы_с_собеседований
Для чего нужны функциональные интерфейсы BinaryOperator<T>, DoubleBinaryOperator, IntBinaryOperator и LongBinaryOperator?
BinaryOperator<T> (бинарный оператор) - интерфейс, с помощью которого реализуется функция, получающая на вход два экземпляра класса T и возвращающая на выходе экземпляр класса T.

BinaryOperator<Integer> operator = (a, b) -> a + b;
System.out.println(operator.apply(1, 2)); // 3

DoubleBinaryOperator
- бинарный оператор, получающий на вход Double;
IntBinaryOperator - бинарный оператор, получающий на вход Integer;
LongBinaryOperator - бинарный оператор, получающий на вход Long.
Прояви свои таланты в «цифре»!

Регистрируйся на самый масштабный конкурс для IT-специалистов в России — «Цифровой Прорыв» 2021! ⚡️

Тебя ждут 8 тематических хакатонов по направлениям: EdTech, EnergoMach, Healthcare, Creative Industries, Vehicles, Fintech и пр.

Крутые кейсовые задания от ведущих российских компаний: Mail.ru Group, Росатом, Ростелеком, и многих других. 👨🏻‍💻

Прожарка Hard и Soft skills на самой мощной образовательной программе.

Призовой фонд — 55 000 000 рублей. 🏆

Присоединяйся к главному IT-движению и стань частью цифрового будущего России! 🎯
Регистрируйся: https://leadersofdigital.ru/