Порядок выполнения корутин внутри coroutineScope
Обычно вывод будет 1, 3, 2, 4, но строгая гарантия здесь — 4 печатается после завершения блока coroutineScope и его дочернего launch. Default не задаёт полный порядок всех println.
Читать ответПодготовка к интервью
182 вопроса с собеседований в amoCRM
Что проверяют на интервью
Подборка объединяет вопросы, отмеченные на этапах интервью в amoCRM. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: mobile, frontend, android.
Каталог
Обычно вывод будет 1, 3, 2, 4, но строгая гарантия здесь — 4 печатается после завершения блока coroutineScope и его дочернего launch. Default не задаёт полный порядок всех println.
Читать ответОба вызова напечатают ???. Extension-функции разрешаются по статическому типу receiver, а параметр doVoice имеет тип Animal даже при передаче Cat.
Читать ответcreate запускается на io, но оба map и обработчик subscribe в данном коде не выполняются: источник пустой и ничего не эмитит. Потоки этих обработчиков имеют смысл только после onNext.
Читать ответБлок create выполнится на UI-потоке. Обработчик subscribe в данном примере вообще не вызовется, потому что источник не отправляет ни одного onNext.
Читать ответЭмиссия just и map будут выполняться на io; конечный subscribe — на computation. Из двух subscribeOn источник определяет ближайший к нему, а последний observeOn задаёт поток ниже себя.
Читать ответПри нормальном выполнении flatMap выдаст dx, cx, bx, ax; switchMap — только dx; concatMap — ax, bx, cx, dx. Для каждого варианта counter нужно заново установить в 4.
Читать ответПрограмма напечатает true и true. Сгенерированный equals класса Animal сравнивает name из первичного конструктора, но не voice из тела класса.
Читать ответСначала обычно появятся 1 и 2 в неопределённом порядке, затем 3 и строка First Async Second Async. Гарантирован порядок await в итоговой строке, но не планирование Default-потоков.
Читать ответКод выполнится и напечатает Hello world. Extension-функция объявлена для nullable receiver Example?, поэтому её можно вызвать у null без safe-call.
Читать ответИ блок Observable.create, и обработчик subscribe выполнятся в главном потоке. В приведённой цепочке нет оператора, который переключает Scheduler.
Читать ответТестирование провожу по заранее определенным этапам, адаптируя процесс под специфику проекта:
Читать ответДа, работал с Docker.
Читать ответ