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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Специальный гость панельной дискуссии «Как выиграть в конкурентной борьбе за сети» — видеоблогер Wylsacom.

💥Saint HighLoad++ посетит ведущий самого популярного в России канала о технологиях и о том, как жить в ногу со временем!

😉Пока мы точно знаем, что Wylsacom будет на открытии конференции и на докладе об ускорении ВКонтакте. И примет участие в панельной дискуссии «Как выиграть в конкурентной борьбе за сети».

Кажется, Wylsacom, знает о докладах команды ВКонтакте что-то, чего ещё не знаем мы. Подключайтесь 20 сентября на открытую трансляцию главного зала Saint HighLoad++ и узнайте это первыми: https://bit.ly/3kp5sx3
#вопросы_с_собеседований
Какие аннотации фикстур существуют в JUnit?
@BeforeClass - определяет код, который должен единожды выполниться перед запуском набора тестовых методов.
@AfterClass - код, выполняемый один раз после исполнения набора тестовых методов.
@Before - определяет код, который должен выполняться каждый раз перд запуском любого тестовым методом.
@After - код, выполняемый каждый раз после исполнения любого тестового метода.
#вопросы_с_собеседований
Напишите минимальный неблокирующий стек (всего два метода — push() и pop()).
Я ищу Java-разработчика в международную компанию Amdocs, которая разрабатывает ПО для финтеха и телеком индустрии (биллинговые системы, CRM и т.д.). В Amdocs коллеги общаются как на русском, так и на английском языках, поэтому погружение в международную среду гарантировано.
Мы предлагаем дополнительные дни к отпуску, удалёнку, ДМС для всех членов семьи, вписанных в паспорт, с первого дня работы. У нас также есть программа внутренней мобильности в любую локацию и вакансию внутри компании ;)

Проект: биллинговая система Ensemble для одного из наших заказчиков – Beeline.
Задачи: backend-разработка в области Business Support Systems (BSS), взаимодействие с аналитиками, тестировщиками, другими разработчиками и др.
Стек: Java 8, 11, JavaEE, Oracle (PL/SQL, опыт оптимизации запросов), Spring, Gradle, Openshift (Okd), Solaris/Linux (shell-скрипты).
Команда: 15 Java-разработчиков, разработчики C, тестировщики, аналитики.

🔹 Также есть более новый проект по разработке биллинговой системы без легаси — Digital One (Java 11, Spring, микросервисы), там очень много английского.

https://www.amdocs.com/

Контакты: Ольга
8-929-622-00-77
[email protected]
#вопросы_с_собеседований
Какие конечные методы работы со стримами вы знаете?
🐘 8 лучших GUI клиентов PostgreSQL в 2021 году

Что такое графический интерфейс PostgreSQL? Зачем он нужен? Как это может помочь вам в управлении базами данных? Узнайте о лучшем программном обеспечении Postgre GUI, которое можно попробовать в 2021 году.

https://proglib.io/sh/Q3gDi6wsyZ
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований Какие конечные методы работы со стримами вы знаете?
findFirst() возвращает первый элемент;
findAny() возвращает любой подходящий элемент;
collect() представление результатов в виде коллекций и других структур данных;
count() возвращает количество элементов;
anyMatch() возвращает true, если условие выполняется хотя бы для одного элемента;
noneMatch() возвращает true, если условие не выполняется ни для одного элемента;
allMatch() возвращает true, если условие выполняется для всех элементов;
min() возвращает минимальный элемент, используя в качестве условия Comparator;
max() возвращает максимальный элемент, используя в качестве условия Comparator;
forEach() применяет функцию к каждому объекту (порядок при параллельном выполнении не гарантируется);
forEachOrdered() применяет функцию к каждому объекту с сохранением порядка элементов;
toArray() возвращает массив значений;
reduce()позволяет выполнять агрегатные функции и возвращать один результат.
Для числовых стримов дополнительно доступны:

sum() возвращает сумму всех чисел;
average() возвращает среднее арифметическое всех чисел.
Команда Luxoft ищет Senior Java-разработчиков и дает большой Welcome-бонус

Вас ждут интересные проекты, достойная зарплата и супер Welcome-bonus! Заполняйте короткую анкету и узнайте больше о работе мечты!
#вопросы_с_собеседований
Назовите различия между synchronized и ReentrantLock?
В Java 5 появился интерфейс Lock, предоставляющий возможности более эффективного и тонкого контроля блокировки ресурсов. ReentrantLock – распространённая реализация Lock, которая предоставляет Lock с таким же базовым поведением и семантикой, как у synchronized, но расширенными возможностями, такими как опрос о блокировании (lock polling), ожидание блокирования заданной длительности и прерываемое ожидание блокировки. Кроме того, он предлагает гораздо более высокую эффективность функционирования в условиях жесткой состязательности.

Что понимается под блокировкой с повторным входом (reentrant)? Просто то, что есть подсчет сбора данных, связанный с блокировкой, и если поток, который удерживает блокировку, снова ее получает, данные отражают увеличение, и тогда для реального разблокирования нужно два раза снять блокировку. Это аналогично семантике synchronized; если поток входит в синхронный блок, защищенный монитором, который уже принадлежит потоку, потоку будет разрешено дальнейшее функционирование, и блокировка не будет снята, когда поток выйдет из второго (или последующего) блока synchronized, она будет снята только когда он выйдет из первого блока synchronized, в который он вошел под защитой монитора.

ReentrantLock lock = new ReentrantLock();

lock.lock();
try {
// update object state
}
finally {
lock.unlock();
}

• Реализация ReentrantLock гораздо более масштабируема в условиях состязательности, чем реализация synchronized. Это значит, что когда много потоков соперничают за право получения блокировки, общая пропускная способность обычно лучше у ReentrantLock, чем у synchronized. JVM требуется меньше времени на установление очередности потоков и больше времени на непосредственно выполнение.
• У ReentrantLock (как и у других реализаций Lock) блокировка должна обязательно сниматься в finally блоке (иначе, если бы защищенный код выбросил исключение, блокировка не была бы снята). Используя синхронизацию, JVM гарантирует, что блокировка автоматически снимаются.

Резюмируя, можно сказать, что когда состязания за блокировку нет либо оно очень мало, то synchronized возможно будет быстрее. Если присутствует заметное состязание за доступ к ресурсу, то скорее всего ReentrantLock даст некое преимущество.
📖 ТОП-10 книг об ИТ не только для айтишников

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

https://proglib.io/sh/VhXqOxKuNC
☕️ Основы Java: выделяем 4 разных роли классов

Java – объектно-ориентированный язык, и если спросить, какую роль в нем играют классы, первым в голову приходит создание объектов. Выделим ещё три важных роли этой конструкции языка, помимо самой очевидной.

https://proglib.io/sh/tYKbs9Zemf
#вопросы_с_собеседований
Для чего в стримах предназначены методы map() и mapToInt(), mapToDouble(), mapToLong()?
Метод map() является промежуточной операцией, которая заданным образом преобразует каждый элемент стрима.

mapToInt(), mapToDouble(), mapToLong() - аналоги map(), возвращающие соответствующий числовой стрим (то есть стрим из числовых примитивов).
Учиться чему-либо бывает непросто: многие откладывают обучение, не могут выделить на него время, теряются в количестве информации или, наоборот, не могут найти актуальные источники. Команда «Библиотеки программиста» хотела бы исследовать вопрос для дальнейшего развития проекта и посему просим вас выделить пару минут своего времени на гугл форму: https://forms.gle/qVJEULRbbHTJTzYr6
#вопросы_с_собеседований
Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?
Если очередь пула потоков заполнилась, то поданная задача будет «отклонена». Например - метод submit() у ThreadPoolExecutor выкидывает RejectedExecutionException, после которого вызывается RejectedExecutionHandler.
#вакансии #харьков #nix #java

Команда NIX приглашает опытных разработчиков на позицию Java Tech Lead!

Мы ищем целеустремленного специалиста в проект по разработке SaaS-платформы для крупного поставщика оборудования.

Что мы ожидаем от тебя:
🔹опыт создания серверного программного обеспечения от 3-х лет;
🔹знание Spring Boot, Spring Data, CI/CD, Docker и Kubernetes, облачного провайдера AWS или Azure;
🔹понимание микросервисов и облачных архитектур;
🔹опыт взаимодействия с реляционными БД и СУБД (PostgreSQL и NoSQL);
🔹умение писать техническую документацию.

Что мы рады тебе предложить:
👉 удобное пространство в центре Харькова (метро «‎Университет»);
👉 гибкую систему пересмотра и повышения вознаграждения;
👉 постоянный профессиональный рост — участие во внутренних мероприятиях, оплачиваемые курсы английского, поездки на зарубежные IT-конференции;
👉 регулярные тимбилдинги, совместные праздники и легендарные корпоративы;
👉 медицинскую и спортивную программу, бухгалтерскую поддержку.

Отправляй свое резюме — присоединяйся к профессионалам NIX!
🎥 ТОП-10 фильмов и сериалов последних лет про современные технологии

Есть мнение, что после культовых «Хакеров», «Джони Мнемоника» и первой «Матрицы» больше не снимали хороших фильмов на околоайтишную тематику. Так ли это? Попробуем разобраться в обзоре лучших кинокартин о современных технологиях, вышедших за последние несколько лет.

https://proglib.io/sh/21yUtZI4wu