База Hintsage

Программирование Java

Язык Java, JVM и экосистема серверной разработки.

Темы раздела

Выберите подраздел

  • 50 вопросов

    Java Core

    Базовая семантика языка, типы, методы, классы и ключевые конструкции.

    Открыть раздел
  • 50 вопросов

    ООП и система типов

    Наследование, полиморфизм, интерфейсы, классы и разрешение методов.

    Открыть раздел
  • 50 вопросов

    Коллекции

    Java Collections Framework, контракты, реализации и сложность операций.

    Открыть раздел
  • 50 вопросов

    Многопоточность

    Java Memory Model, потоки, синхронизация и java.util.concurrent.

    Открыть раздел
  • 50 вопросов

    JVM и память

    Загрузка классов, память JVM, GC, JIT и диагностика.

    Открыть раздел
  • 50 вопросов

    Generics

    Параметризация типов, bounds, wildcards и стирание типов.

    Открыть раздел
  • 50 вопросов

    Stream API

    Функциональные интерфейсы, streams, collectors и параллельная обработка.

    Открыть раздел
  • 50 вопросов

    Исключения

    Иерархия исключений, обработка ошибок и управление ресурсами.

    Открыть раздел

Практика

Вопросы: Программирование Java

В следующем коде функция обновления записывает сообщение в журнал. Какой скрытый риск возникает при конкуренции нескольких потоков?

import java.util.concurrent.atomic.AtomicInteger;

class Demo {
    static final AtomicInteger value = new AtomicInteger();

    static int next() {
        return value.updateAndGet(old -> {
            System.out.println("old=" + old);
            return old + 1;
        });
    }
}
Программирование JavaМногопоточностьJava-разработчик, отвечающий за конкурентные сервисы

В следующем коде задача завершается исключением. Определите, где окажется это исключение и почему оно не выводится обработчиком необработанных исключений потока.

import java.util.concurrent.*;

class Demo {
    public static void main(String[] args) throws Exception {
        ExecutorService pool = Executors.newSingleThreadExecutor();
        Future<?> future = pool.submit(() -> {
            throw new IllegalStateException("boom");
        });
        System.out.println("done");
        pool.shutdown();
    }
}
Программирование JavaМногопоточностьJava-разработчик серверных приложений

Показано 201–220 из 403

Восстановление доступа