O(N). Вставка элемента в конец списка осуществляется за время O(1), но если вместимость массива недостаточна, то происходит создание нового массива с увеличенным размером и копирование всех элементов из старого массива в новый.
Каким будет результат компиляции и исполнения этого кода?
Anonymous Quiz
5%
10
14%
11
12%
12
45%
17
23%
18
Специальный гость панельной дискуссии «Как выиграть в конкурентной борьбе за сети» — видеоблогер Wylsacom.
💥Saint HighLoad++ посетит ведущий самого популярного в России канала о технологиях и о том, как жить в ногу со временем!
😉Пока мы точно знаем, что Wylsacom будет на открытии конференции и на докладе об ускорении ВКонтакте. И примет участие в панельной дискуссии «Как выиграть в конкурентной борьбе за сети».
✅Кажется, Wylsacom, знает о докладах команды ВКонтакте что-то, чего ещё не знаем мы. Подключайтесь 20 сентября на открытую трансляцию главного зала Saint HighLoad++ и узнайте это первыми: https://bit.ly/3kp5sx3
💥Saint HighLoad++ посетит ведущий самого популярного в России канала о технологиях и о том, как жить в ногу со временем!
😉Пока мы точно знаем, что Wylsacom будет на открытии конференции и на докладе об ускорении ВКонтакте. И примет участие в панельной дискуссии «Как выиграть в конкурентной борьбе за сети».
✅Кажется, Wylsacom, знает о докладах команды ВКонтакте что-то, чего ещё не знаем мы. Подключайтесь 20 сентября на открытую трансляцию главного зала Saint HighLoad++ и узнайте это первыми: https://bit.ly/3kp5sx3
#вопросы_с_собеседований
Какие аннотации фикстур существуют в 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
Чему бы вы хотели научиться?
Мы в активном поиске идей для образовательных продуктов и будем рады узнать ваши пожелания по обучению.