Какими коллекциями пользоваться в многопоточной среде?
Первый вариант – превратить в синхронизированную обычную коллекцию, вызвав соответствующий ее типу метод
Если работа с коллекцией состоит в основном из чтения, лучшая в плане производительности альтернатива –
Третий вариант – использование
• Неблокирующие хэш-таблицы
• Неблокирующие очереди
Первый вариант – превратить в синхронизированную обычную коллекцию, вызвав соответствующий ее типу метод
Collections.synchronized*(). Самый общий и самый примитивный способ, создает обертку с синхронизацией всех операций с помощью synchronized.Если работа с коллекцией состоит в основном из чтения, лучшая в плане производительности альтернатива –
CopyOnWriteArrayList, и содержащий его в реализации CopyOnWriteArraySet. Потокобезопасность достигается копированием внутреннего массива при любой модификации, оригинальный массив остается immutable. Program order достигается модификатором volatile на внутреннем массиве.Третий вариант – использование
Concurrent-коллекций:• Неблокирующие хэш-таблицы
ConcurrentSkipListMap, ConcurrentHashMap и ConcurrentSkipListSet (хэш-таблица в основе реализации)• Неблокирующие очереди
ConcurrentLinkedQueue и ConcurrentLinkedDeque
• Большой набор различных блокирующих очередейJava Преподаватель онлайн-курса на английском
#удаленка #неполныйдень
З/П: за 1 урок (полтора часа) – от 80 до 120 евро.
Компания: OTUS
Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут Вам освоить лучшие инструменты и практики преподавания.
У нас классная команда 600+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.
Хотите узнать больше?
Контакты: @anna_phoenix7
#удаленка #неполныйдень
З/П: за 1 урок (полтора часа) – от 80 до 120 евро.
Компания: OTUS
Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут Вам освоить лучшие инструменты и практики преподавания.
У нас классная команда 600+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.
Хотите узнать больше?
Контакты: @anna_phoenix7
Мы ищем бэкенд-разработчиков сразу в несколько сервисов и команд!
Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:
👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.
➡️ Посмотреть все вакансии
Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:
👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.
➡️ Посмотреть все вакансии
🔥 На канале IT Jobs стартанул вебинар на тему: «Полный цикл - пишем Telegram-бота Chatgpt на Python. От проекта до деплоя за час!»
Скорее подключайся!
Скорее подключайся!
Мы ищем бэкенд-разработчиков сразу в несколько сервисов и команд!
Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:
👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.
➡️ Посмотреть все вакансии
Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:
👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.
➡️ Посмотреть все вакансии
С каждым годом востребованность Kafka растет, а работа с этим инструментом входит в топ-10 ключевых навыков IT-специалистов.
Только за последний месяц можно найти больше 3000 вакансий, где требуется знание Кафки.
Уверенно заявляем: каждому backend-специалисту рано или поздно придется столкнуться с Кафкой — поэтому команда Слёрм создала интенсив по Apache Kafka для разработчиков, специально под ваши задачи.
Курс Кафка для разработчиков идеально подойдёт вам, если:
▫️Вы уже владеете языками Java или Go;
▫️Понимаете goroutine, модульность;
▫️Имеете базовые знания ThreadPool.
28 онлайн-уроков с возможностью обучаться из любой точки мира, доступ на 2 года, AMA-сессии со спикерами и закрытый чат с куратором — уменьшите время на рабочие задачи с Кафкой, получив расширенные знания по работе с инструментом!
После курса вы:
▫️Начнете прекрасно разбираться и ориентироваться в терминологии;
▫️Напишете простейшие клиенты, поймёте внутреннюю архитектуру Кафки
▫️Сможете работать со сложными протоколами и наст...
Только за последний месяц можно найти больше 3000 вакансий, где требуется знание Кафки.
Уверенно заявляем: каждому backend-специалисту рано или поздно придется столкнуться с Кафкой — поэтому команда Слёрм создала интенсив по Apache Kafka для разработчиков, специально под ваши задачи.
Курс Кафка для разработчиков идеально подойдёт вам, если:
▫️Вы уже владеете языками Java или Go;
▫️Понимаете goroutine, модульность;
▫️Имеете базовые знания ThreadPool.
28 онлайн-уроков с возможностью обучаться из любой точки мира, доступ на 2 года, AMA-сессии со спикерами и закрытый чат с куратором — уменьшите время на рабочие задачи с Кафкой, получив расширенные знания по работе с инструментом!
После курса вы:
▫️Начнете прекрасно разбираться и ориентироваться в терминологии;
▫️Напишете простейшие клиенты, поймёте внутреннюю архитектуру Кафки
▫️Сможете работать со сложными протоколами и наст...
Ты знал что каждый кодер должен знать сети на должном уровне?
🤔 Если ты хочешь по-быстрому разобраться в сетях и не хочешь читать книги по тысячи страниц, то переходи в канал Network Academy где ты быстро сможешь изучить самое важное за несколько минут.
ЗАХОДИ 👉 Network Academy
🤔 Если ты хочешь по-быстрому разобраться в сетях и не хочешь читать книги по тысячи страниц, то переходи в канал Network Academy где ты быстро сможешь изучить самое важное за несколько минут.
ЗАХОДИ 👉 Network Academy
Шестнадцатеричный формат
Иногда нам нужно преобразовать строки в шестнадцатеричный формат, байты или символы. Начиная с Java 17 вы можете использовать класс HexFormat. Просто создайте экземпляр HexFormat, а затем вы можете отформатировать, например, входную таблицу byte в шестнадцатеричную строку. Вы также можете, например, преобразовать входную шестнадцатеричную строку в таблицу байтов, как показано выше.
Иногда нам нужно преобразовать строки в шестнадцатеричный формат, байты или символы. Начиная с Java 17 вы можете использовать класс HexFormat. Просто создайте экземпляр HexFormat, а затем вы можете отформатировать, например, входную таблицу byte в шестнадцатеричную строку. Вы также можете, например, преобразовать входную шестнадцатеричную строку в таблицу байтов, как показано выше.
Можно ли хранить null в стандартных коллекциях?
Все интерфейсы Collections Framework позволяют своим реализациям самостоятельно решать, поддерживать ли null-значения. Если реализация не может принять
Большинство списков (
Unmodifiable Maps не допускают null-ов совсем. Обычные изменяемые мапы обычно не испытывают трудности со значениями null. А вот с ключами дело обстоит интереснее.
Иногда этот вопрос дается как задача с подвохом про
Для значений Set-ов действуют те же правила, что для ключей лежащих в основе их Map-ов.
👉@BookJava
Все интерфейсы Collections Framework позволяют своим реализациям самостоятельно решать, поддерживать ли null-значения. Если реализация не может принять
null, она выбрасывает NullPointerException или ClassCastException.Большинство списков (
LinkedList, ArrayList) принимают null без проблем. Большинство очередей (Queue и Deque) не хранят null – возвращая из читающего метода null они сообщают пользователю о пустоте коллекции.Unmodifiable Maps не допускают null-ов совсем. Обычные изменяемые мапы обычно не испытывают трудности со значениями null. А вот с ключами дело обстоит интереснее.
HashMap не может посчитать hash-сумму от null. Но вместо этого для таких ключей просто используется бакет номер 0.Иногда этот вопрос дается как задача с подвохом про
TreeMap. Nullability её ключей зависит от готовности к этому компаратора. Натуральный порядок (который работает для Comparable ключей) не поддерживает null. Раньше в реализации был баг, который позволял положить значение по ключу null в корень дерева без выброса исключения.Для значений Set-ов действуют те же правила, что для ключей лежащих в основе их Map-ов.
👉@BookJava
Java-разработчик (middle)
#полныйдень #удаленка
Компания: Иннотех
Требования к профессиональным навыкам:
- отличные знания Java SE 8+;
- знание принципов ООП, шаблонов проектирования;
- понимание микросервисной архитектуры;
- опыт enterprise разработки/разработки высоко-нагруженных сервисов;
- отличные знания Spring;
- знание JUnit/TestNG;
- знание Maven/Gradle;
- опыт работы с gRPC (будет плюсом);
- опыт работы с Kafka
- знакомство с Netty, протоколом WebSocket (будет плюсом)
знакомство с Docker
- опыт работы с Kubernetes/Openshift (будет плюсом)
#полныйдень #удаленка
Компания: Иннотех
Требования к профессиональным навыкам:
- отличные знания Java SE 8+;
- знание принципов ООП, шаблонов проектирования;
- понимание микросервисной архитектуры;
- опыт enterprise разработки/разработки высоко-нагруженных сервисов;
- отличные знания Spring;
- знание JUnit/TestNG;
- знание Maven/Gradle;
- опыт работы с gRPC (будет плюсом);
- опыт работы с Kafka
- знакомство с Netty, протоколом WebSocket (будет плюсом)
знакомство с Docker
- опыт работы с Kubernetes/Openshift (будет плюсом)
В чём заключается различие между методами submit() и execute() у пула потоков?
Оба метода являются способами подачи задачи в пул потоков, но между ними есть небольшая разница.
Оба метода являются способами подачи задачи в пул потоков, но между ними есть небольшая разница.
execute(Runnable command) определён в интерфейсе Executor и выполняет поданную задачу и ничего не возвращает.submit() – перегруженный метод, определённый в интерфейсе ExecutorService. Способен принимать задачи типов Runnable и Callable и возвращать объект Future, который можно использовать для контроля и управления процессом выполнения, получения его результата.#задача
О неединственном дубликате в массиве целых чисел
Условия:
Дан лист целых чисел от 1 до 100. В нём есть дубликаты (больше одного). Как найти элементы, которые встречаются больше одного раза (найти сам элемент и указать, сколько раз он встречается)?
О неединственном дубликате в массиве целых чисел
Условия:
Дан лист целых чисел от 1 до 100. В нём есть дубликаты (больше одного). Как найти элементы, которые встречаются больше одного раза (найти сам элемент и указать, сколько раз он встречается)?
Java Developer (Middle)
#полныйдень #удаленка
Компания: Иннотех
Вместе с нами тебе предстоит:
- На старте формировать команду и развивать направление;
- Координация работы кросс-функциональной команды, организация и контроль разработки нового функционала, включая процессы сбора требований, разработки, тестирования и внедрения функционала;
- Постановка задач, работа с мотивацией, организация обучения и развития сотрудников;
- Ведение планов работ команды, оценка трудоёмкости работ;
- Взаимодействие с Solution Architect для проектирования реализации решений;
- Разработка back-end части банковских сервисов в микросервисной архитектуре c использованием фреймворка Spring Boot;
- Стать code owner части уже существующих микросервисов и заниматься их развитием;
- Участие в разработке и согласовании API;
- Участие в разработке архитектуры решения и выборе технологий, построение моделей данных;
- Внедрение новых технологий и решение технических проблем;
R&D ключевых участков подсистем.
Какие знания и навыки для нас важны:
- Опыт работы в аналогичной должности от 2 лет;
- Опыт BE разработки от 5-х лет;
- Готовность принимать решения и брать на себя ответственность;
- Стек Java, spring;
- Опыт проектирования и построения микросервисных архитектур;
- Опыт построения CI/CD;
- Опыт работы с платформой Kubernetes/OpenShift;
- Опыт работы с Message/Streaming-oriented middleware (Kafka/RabbitMQ).
- Коммуникационные навыки, умение находить общий язык как с бизнес-заказчиками, так и с разработчиками и смежными подразделениями.
#полныйдень #удаленка
Компания: Иннотех
Вместе с нами тебе предстоит:
- На старте формировать команду и развивать направление;
- Координация работы кросс-функциональной команды, организация и контроль разработки нового функционала, включая процессы сбора требований, разработки, тестирования и внедрения функционала;
- Постановка задач, работа с мотивацией, организация обучения и развития сотрудников;
- Ведение планов работ команды, оценка трудоёмкости работ;
- Взаимодействие с Solution Architect для проектирования реализации решений;
- Разработка back-end части банковских сервисов в микросервисной архитектуре c использованием фреймворка Spring Boot;
- Стать code owner части уже существующих микросервисов и заниматься их развитием;
- Участие в разработке и согласовании API;
- Участие в разработке архитектуры решения и выборе технологий, построение моделей данных;
- Внедрение новых технологий и решение технических проблем;
R&D ключевых участков подсистем.
Какие знания и навыки для нас важны:
- Опыт работы в аналогичной должности от 2 лет;
- Опыт BE разработки от 5-х лет;
- Готовность принимать решения и брать на себя ответственность;
- Стек Java, spring;
- Опыт проектирования и построения микросервисных архитектур;
- Опыт построения CI/CD;
- Опыт работы с платформой Kubernetes/OpenShift;
- Опыт работы с Message/Streaming-oriented middleware (Kafka/RabbitMQ).
- Коммуникационные навыки, умение находить общий язык как с бизнес-заказчиками, так и с разработчиками и смежными подразделениями.
#Вопросы_с_собеседования
🎙️ Можно ли переопределить статический или частный метод в Java?
Частный метод недоступен вне класса, поэтому он не будет переопределен подклассом. Следовательно, его нельзя переопределить. Точно так же статический метод не может быть переопределен, потому что если мы создадим статические методы с одним и тем же именем метода и сигнатурой как в базовом, так и в производном классе, производный класс скроет методы в базовом классе. Это известно как сокрытие метода.
🎙️ Можно ли переопределить статический или частный метод в Java?
Техника «10 тестов в день» – одна из самых эффективных в изучении Java.
Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.
➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.
Подписывайтесь и качайте свои скиллы: @javatasks
Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.
➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.
Подписывайтесь и качайте свои скиллы: @javatasks
Мы ищем бэкенд-разработчиков сразу в несколько сервисов и команд!
Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:
👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.
➡️ Посмотреть все вакансии
Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:
👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.
➡️ Посмотреть все вакансии
Мы ищем бэкенд-разработчиков сразу в несколько сервисов и команд!
Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:
👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.
➡️ Посмотреть все вакансии
Вакансий много — можно выбрать, чем интереснее вам было бы заниматься. Вот несколько задач из них:
👉 разработка быстрорастущей real-time распределённой файловой системы в Яндекс Диске;
👉 разработка сервиса data plane — программного маршрутизатора и балансировщика нагрузки в Yandex Cloud (CloudGate);
👉 задачи по массовому обслуживанию виртуальных машин: расселение, эвакуация и оптимизация использования кластеров — для Yandex Cloud (API Compute);
👉 разработка новых способов борьбы с вредоносными сообщениями и подготовка входных данных для машинного обучения в Спамооборону;
👉 проектирование фреймворка с учётом eBFP для внутреннего инфраструктурного контейнерного облака.
➡️ Посмотреть все вакансии