uk
Feedback
Java Interview Tasks

Java Interview Tasks

Відкрити в Telegram

Реальные вопросы и задачи с собеседований. Оригинальный авторский контент. Актуальный материал. Уровень вопросов от junior до supersenior. Автор канала - @alexzelentsov По рекламе: @alexzelentsov и https://telega.in/c/java_interview_tasks

Показати більше
4 522
Підписники
Немає даних24 години
-107 днів
-2730 день
Архів дописів
Про то, как надо дебажить , используя idea: https://www.youtube.com/watch?v=U0lGmE8DW9U

Что напечатает код?
Anonymous voting

Что напечатает код? double a = Math.pow(10, 100); double b = Math.pow(10, -100); double c = a + b; System.out.println(c);

Нет, конструктор не может быть synchronized, это запрещено спецификацией, аргументация примерено такая - JVM гарантирует, что только один поток может вызвать конструктор в данный момент времени. Вот почему нет необходимости объявлять конструктор как synchronized, и это недопустимо в Java.

Может ли конструктор быть synchronized? (почему - пишите в комменты)
Anonymous voting

Тут главная проблема в том, что первоначальный эксепшен теряется и непонятно будет какая ошибка случилась. Здесь нужно либо прокинуть этот эксепшен дальше либо залоггировать его.

👌Задача тимлида — организовать работу команды так, чтобы добиваться поставленных целей. Но почему иногда команда сильных спе
👌Задача тимлида — организовать работу команды так, чтобы добиваться поставленных целей. Но почему иногда команда сильных специалистов никак не может достигнуть результата? Все ли в команде достаточно хорошо, чтобы решать поставленные задачи? 🚀Приходите З5 октября в 20:00 мск на открытый урок «5 пороков команды» в OTUS. На занятии разберемся, какими пороками может страдать команда, как их идентифицировать и устранить: регистрация — Занятие проведет Александр Пряхин — руководитель курса «Team Lead» и технический директор CityAds Media. Еще больше полезных знаний ждет вас на онлайн-курсе «Team Lead» от OTUS, ориентированном на начинающих и действующих руководителей.

Оцените код по 10-бальной шкале (10 = наилучший код в истории человечества)
Anonymous voting

Оцените код по 10-бальной шкале
Оцените код по 10-бальной шкале

Какие проблемы могут быть в таком коде? public static List add(Long l1, Long l2, Long l3) { return List.of(l1, l2, l3); }

Правильный вариант: может быть и true и false Дело в том, что вызов thenRun у того же future, но во втором потоке, может привести к срабатыванию callback в первом thenRun. При этом callback первого thenRun будет вызван во втором потоке. Это происходит в тот момент, когда future.complete(null) начало выполняться, но ещё не успело вызвать callbacks, а во втором потоке вызвался thenRun, который и выполнит все остальные callbacks на этом future но уже в своём потоке. Проблем решается просто: //основной поток Thread mainThread = Thread.currentThread(); //создаём второй поток Executor executor = Executors.newSingleThreadExecutor(); CompletableFuture future = new CompletableFuture<>(); CompletableFuture secondThreadFuture = future.thenRun(() -> { System.out.println(Thread.currentThread() == mainThread); }); //просто добавляем callback к тому же future в другом потоке executor.execute(() -> { secondThreadFuture.thenRun(() -> { //nop }); }); //завершаем future future.complete(null); Мы просто добавили secondThreadFuture, которая зависит от результата исходной future. И вызов на ней thenRun во втором потоке не приводит к возможному срабатыванию callbacks на исходной future. Для гарантированного вызова callbacks в заданных пользователем потоках у CompletableFuture существуют async реализации методов, например — thenRunAsync, которым нужно передавать Executor. Но async-версии методов могут работать медленней, чем обычные.

Задача с собеседования: Sort a large input stream of 3-byte unsigned integers (e.g. 16GB total size) not using disk provided you run 32-bit Java

Что будет напечатано?
Anonymous voting

Что будет напечатано?
Что будет напечатано?

Ответ: тут нарушен порядок HB сначала идет запись в volatile поле g а потом в x, поэтому чтение из g еденицы не дает гарантий относительно x Поэтому возможны все варианты: "0, 0", "1, 1", "0, 1", "1, 0"

Какие значения могут напечататься? (thread1 и thread2 запускаются одновременно в разных потоках)
Anonymous voting

Какие значения могут напечататься? (thread1 и thread2 запускаются одновременно в разных потоках)
Какие значения могут напечататься? (thread1 и thread2 запускаются одновременно в разных потоках)

Хочешь выучить Java, но не знаешь с чего начать? Начни с этого канала https://t.me/java_kabal В закреплённых сообщениях ответы на самые часто задаваемые вопросы

@BenchmarkMode(Mode.Throughput) @Fork(1) @State(Scope.Thread) @Warmup(iterations = 10, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 10, time = 1, timeUnit = TimeUnit.SECONDS) public class SystemCalls { @Benchmark public long curr() { return System.currentTimeMillis(); } @Benchmark public long instant() { return Instant.now().toEpochMilli(); } }