#вопросы_с_собеседований
Какие аннотации фикстур существуют в JUnit?
Какие аннотации фикстур существуют в JUnit?
@BeforeClass - определяет код, который должен единожды выполниться перед запуском набора тестовых методов.
@AfterClass - код, выполняемый один раз после исполнения набора тестовых методов.
@Before - определяет код, который должен выполняться каждый раз перд запуском любого тестовым методом.
@After - код, выполняемый каждый раз после исполнения любого тестового метода.
@AfterClass - код, выполняемый один раз после исполнения набора тестовых методов.
@Before - определяет код, который должен выполняться каждый раз перд запуском любого тестовым методом.
@After - код, выполняемый каждый раз после исполнения любого тестового метода.
#вопросы_с_собеседований
Напишите минимальный неблокирующий стек (всего два метода — push() и pop()).
Напишите минимальный неблокирующий стек (всего два метода — push() и pop()).
Forwarded from Java jobs — вакансии для java-разработчиков
Я ищу 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]
Мы предлагаем дополнительные дни к отпуску, удалёнку, ДМС для всех членов семьи, вписанных в паспорт, с первого дня работы. У нас также есть программа внутренней мобильности в любую локацию и вакансию внутри компании ;)
Проект: биллинговая система 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]
Amdocs
Amdocs digital network transformation communications
Amdocs is a leading software & services provider to communications & media companies, providing innovative solutions, intelligent operations & delivery expertise.
#вопросы_с_собеседований
Какие конечные методы работы со стримами вы знаете?
Какие конечные методы работы со стримами вы знаете?
🐘 8 лучших GUI клиентов PostgreSQL в 2021 году
Что такое графический интерфейс PostgreSQL? Зачем он нужен? Как это может помочь вам в управлении базами данных? Узнайте о лучшем программном обеспечении Postgre GUI, которое можно попробовать в 2021 году.
https://proglib.io/sh/Q3gDi6wsyZ
Что такое графический интерфейс 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() возвращает среднее арифметическое всех чисел.
findAny() возвращает любой подходящий элемент;
collect() представление результатов в виде коллекций и других структур данных;
count() возвращает количество элементов;
anyMatch() возвращает true, если условие выполняется хотя бы для одного элемента;
noneMatch() возвращает true, если условие не выполняется ни для одного элемента;
allMatch() возвращает true, если условие выполняется для всех элементов;
min() возвращает минимальный элемент, используя в качестве условия Comparator;
max() возвращает максимальный элемент, используя в качестве условия Comparator;
forEach() применяет функцию к каждому объекту (порядок при параллельном выполнении не гарантируется);
forEachOrdered() применяет функцию к каждому объекту с сохранением порядка элементов;
toArray() возвращает массив значений;
reduce()позволяет выполнять агрегатные функции и возвращать один результат.
Для числовых стримов дополнительно доступны:
sum() возвращает сумму всех чисел;
average() возвращает среднее арифметическое всех чисел.
Forwarded from Java jobs — вакансии для java-разработчиков
Команда Luxoft ищет Senior Java-разработчиков и дает большой Welcome-бонус
Вас ждут интересные проекты, достойная зарплата и супер Welcome-bonus! Заполняйте короткую анкету и узнайте больше о работе мечты!
Вас ждут интересные проекты, достойная зарплата и супер Welcome-bonus! Заполняйте короткую анкету и узнайте больше о работе мечты!
#вопросы_с_собеседований
Назовите различия между synchronized и ReentrantLock?
Назовите различия между 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
Подборка литературы для желающих познакомиться с миром технологий. Эти книги подойдут не только практикующим программистам, но и тем, кто интересуется самой динамично развивающейся отраслью.
https://proglib.io/sh/VhXqOxKuNC
☕️ Основы Java: выделяем 4 разных роли классов
Java – объектно-ориентированный язык, и если спросить, какую роль в нем играют классы, первым в голову приходит создание объектов. Выделим ещё три важных роли этой конструкции языка, помимо самой очевидной.
https://proglib.io/sh/tYKbs9Zemf
Java – объектно-ориентированный язык, и если спросить, какую роль в нем играют классы, первым в голову приходит создание объектов. Выделим ещё три важных роли этой конструкции языка, помимо самой очевидной.
https://proglib.io/sh/tYKbs9Zemf
#вопросы_с_собеседований
Для чего в стримах предназначены методы map() и mapToInt(), mapToDouble(), mapToLong()?
Для чего в стримах предназначены методы map() и mapToInt(), mapToDouble(), mapToLong()?
Учиться чему-либо бывает непросто: многие откладывают обучение, не могут выделить на него время, теряются в количестве информации или, наоборот, не могут найти актуальные источники. Команда «Библиотеки программиста» хотела бы исследовать вопрос для дальнейшего развития проекта и посему просим вас выделить пару минут своего времени на гугл форму: https://forms.gle/qVJEULRbbHTJTzYr6
Google Docs
Чему бы вы хотели научиться?
Мы в активном поиске идей для образовательных продуктов и будем рады узнать ваши пожелания по обучению.
#вопросы_с_собеседований
Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?
Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?
Библиотека джависта | 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!
Команда 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
Есть мнение, что после культовых «Хакеров», «Джони Мнемоника» и первой «Матрицы» больше не снимали хороших фильмов на околоайтишную тематику. Так ли это? Попробуем разобраться в обзоре лучших кинокартин о современных технологиях, вышедших за последние несколько лет.
https://proglib.io/sh/21yUtZI4wu
Библиотека джависта | Java, Spring, Maven, Hibernate
Если очередь пула потоков заполнилась, то поданная задача будет «отклонена». Например - метод submit() у ThreadPoolExecutor выкидывает RejectedExecutionException, после которого вызывается RejectedExecutionHandler.
Особенностью PriorityQueue является возможность управления порядком элементов. По-умолчанию, элементы сортируются с использованием «natural ordering», но это поведение может быть переопределено при помощи объекта Comparator, который задаётся при создании очереди. Данная коллекция не поддерживает null в качестве элементов.
Используя PriorityQueue, можно, например, реализовать алгоритм Дейкстры для поиска кратчайшего пути от одной вершины графа к другой. Либо для хранения объектов согласно определённого свойства.
Используя PriorityQueue, можно, например, реализовать алгоритм Дейкстры для поиска кратчайшего пути от одной вершины графа к другой. Либо для хранения объектов согласно определённого свойства.