Получи случайную криптовалюту за регистрацию!

Senior Java Developer

Логотип телеграм канала @seniorjavist — Senior Java Developer S
Логотип телеграм канала @seniorjavist — Senior Java Developer
Адрес канала: @seniorjavist
Категории: Образование
Язык: Русский
Количество подписчиков: 22.30K
Описание канала:

Изучаем Java.
По вопросам сотрудничества: @adv_and_pr
Канал на бирже: https://telega.in/c/seniorjavist

Рейтинги и Отзывы

3.50

2 отзыва

Оценить канал seniorjavist и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

0

2 звезд

1

1 звезд

0


Последние сообщения 10

2023-04-29 11:00:00
Стажировка Deep Dive: что это, кого ищут и почему это может быть интересней, чем классическая стажировка

Deep Dive — оплачиваемая стажировка от Яндекс Маркета, которая проходит
в формате буткемпа. Это интенсив, где участники в течение 3–4 месяцев могут поработать сразу в двух разных командах и выбрать ту, что нравится больше.

Стажёров ищут по трём направлениям:
— бэкенд (С++, Java)
— фронтенд (JavaScript)
— мобильная разработка (iOS, Android)

Что вас ждёт?
Знакомство с технологиями Яндекса, особенностями процесса разработки, программами и инструментами.
Работа над реальными задачами в первой команде и комплексная обратная связь, по итогам которой вам подберут вторую команду.
Работа над новыми задачами во второй команде.

У всех, кто хорошо себя проявит, будет шанс попасть в штат компании и выбрать команду, в которой больше понравилось работать.

Выход на стажировку 31 мая
Подать заявку
2.2K views08:00
Открыть/Комментировать
2023-04-29 09:02:21
2.6K views06:02
Открыть/Комментировать
2023-04-28 21:25:03 #вопросы_с_собеседований
ThreadPoolExecutor — описать механизм работы, св-ва, частности (fixed threadpool, scheduled, single thread executor)

ThreadPoolExecutor — средство контроля исполнения параллельных задач, задействует один из свободных тредов в общем пуле, или ставит задание в очередь, если таковых нет, или достигнуты определенные условия (ниже)

Основными св-вами ThreadPoolExecutor являются corePoolSize и maxPoolSize. Если текущее количество тредов в пуле < corePoolSize — новый тред будет создаваться в независимости от того, есть ли в пуле незанятые треды. В промежутке между corePoolSize и maxPoolSize тред будет создаваться в том случае, если заполнена очередь задач, и удаляться спустя keepAliveTime. Если кол-во тредов стало >= maxPoolSize — новые треды не создаются, а задачи ставятся в очередь.

Есть возможность регулировать поведение очереди:
Direct handoffs: немедленная передача задачи тредпулу. Нет понятия очереди задачи. Если свободных тредов нет — кидается exception. Применимо при неограниченных maxPoolSize, но нужно понимать проблему при быстрых записях и медленных чтениях, что может спровоцировать непомерное потребление ресурсов
Unbounded queues: очередь без ограничений. Задачи будут добавляться в нее при превышении corePoolSize, при этом maxPoolSize будет игнорироваться. Unbounded queues имеют проблемы потребления ресурсов при больших нагрузках, но сглаживают рост тредов при пиках.
Bounded queues: очередь с ограничениями. Задачи будут добавляться в очередь до достижения некоего capacity. Для достижения наилучшей производительности нужно понимать размеры corePoolSize и самой очереди и чем можно пожертвовать — перфомансом (малый corePoolSize и большая очередь), или же памятью (ограниченная очередь, большой corePoolSize)


Частности ThreadPoolExecutor:
ScheduleThreadPoolExecutor — применяется для периодичных по времени задач
fixed thread pool — частность ScheduleThreadPoolExecutor'а с настроенным corePoolSize и unbounded queue
single thread executor — тредпулл, c сorePoolSize = 1, гарантирующий последовательное выполнение задач из очереди
3.0K views18:25
Открыть/Комментировать
2023-04-28 15:33:05 Countdown Latch/Cyclic Barrier

CountdownLatch («защелка») — примитив синхронизации, с помощью которого, например, основной thread может ожидать выполнения работы остальных N тредов. Треды, выполняющие работу, выполняют countDown() на защелке, основной тред ожидает на операции await(). Когда счетчик достигает нуля, основной тред продолжает работу.

Для синхронизации N тредов (все ждут всех) и переиспользования используется CyclicBarrier, ему также можно указывать действие (через Runnable), выполняемое после синхронизации всех-со-всеми
3.3K views12:33
Открыть/Комментировать
2023-04-27 20:31:24 #вопросы_с_собеседований
Generics: В чем преимущество, как работают? Что такое type-erasure? В чем отличие от шаблонов C++?

Типы дженерики обеспечивают параметрический полиморфизм, т.е выполнение идентичного кода для различных типов. Типичный пример — коллекции, итераторы
type-erasure — это стирание информации о типе-параметре в runtime. Таким образом, в байт-коде мы увидим List, Set вместо List, Set, ну и type-cast'ы при необходимости
В отличие от дженериков в Java, в С++ шаблоны в итоге приводят к компиляции метода или типа для каждого специфицированного типа параметра (специализация шаблона). Да простят меня здесь адепты С++.
3.7K views17:31
Открыть/Комментировать
2023-04-27 17:18:16
Стать сотрудником Яндекса быстрее и проще, чем кажется. Участвуйте в днях быстрого найма: решите тестовое, пройдите несколько секций собеседования и получите офер за несколько дней.

Теперь дни быстрого найма будут проходить регулярно. Чтобы вам было удобно следить за расписанием, собрали его на отдельной странице.

Ближайшее мероприятие:

• 13-14 мая — Fast Track для бэкенд-разработчиков пишущих на Python или С++, либо тех, кто готов на них перейти, офер за 2 дня в команду RideTech.

Зарегистрироваться
3.8K views14:18
Открыть/Комментировать
2023-04-27 14:57:58 #вопросы_с_собеседований
Swing: рассказать про EDT, как им пользоваться

EDT — тред в котором производится обработка пользовательских действий на UI: движение курсора, нажатие клавиш, скролл, drag'n'drop и.т.д. Соотвественно, все «тяжелые» по времени и ресурсам операции нужно выносить в отдельный worker-тред (SwingUtils.invokeLater(...)), чтобы не фризить EDT.
3.8K views11:57
Открыть/Комментировать
2023-04-26 20:31:57
4.1K views17:31
Открыть/Комментировать
2023-04-26 14:39:27 #вопросы_с_собеседований
Как в Java сделать утечку памяти? 

Используя самописный класс стека, при выполнении операции pop() не присваивать предыдущей ссылке значение null.
Также можно неверно использовать HashMap вместо WeakHashMap для кэширования чего-нибудь большого, например картинок ваших товаров, пользователей и т.д в. Т.к ссылки на ключи сильные (strong references), значения по этим ключам будут висеть в хипе до следующей перезагрузки jvm процесса или удаления ключа из мапы и обнуления ссылки на него.
4.2K views11:39
Открыть/Комментировать
2023-04-25 20:50:31
4.3K views17:50
Открыть/Комментировать