Знаешь ли ты, как отключить GC в Java-приложении?
В HotSpot можно выбрать Epsilon — сборщик, который выделяет память, но не освобождает мусор. Он предназначен для специальных сценариев и измерений, а не обычного долгоживущего сервиса.
Читать ответПодготовка к интервью
799 вопросов с собеседований в ВК
Что проверяют на интервью
Подборка объединяет вопросы, отмеченные на этапах интервью в ВК. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: frontend, browser, mobile.
Каталог
В HotSpot можно выбрать Epsilon — сборщик, который выделяет память, но не освобождает мусор. Он предназначен для специальных сценариев и измерений, а не обычного долгоживущего сервиса.
Читать ответДва ключевых слова — synchronized и volatile. Первое задаёт мониторную синхронизацию, второе — гарантии видимости и порядка для доступа к полю без взаимного исключения.
Читать ответПервый фрагмент сразу выбросит NullPointerException: y заполнен null, а присваивание в int требует unboxing. Второй упаковывает нули через cache Integer, третий явно создаёт объекты.
Читать ответОсновные Unix IPC: pipes, именованные FIFO, Unix domain sockets, shared memory, очереди сообщений и сигналы. Сокеты также позволяют взаимодействовать через сеть.
Читать ответКаждое volatile-поле получит собственные гарантии видимости и порядка доступа. Но несколько volatile-полей не превращаются в единое атомарное состояние.
Читать ответПример нарушения согласованности: после перевода общая сумма денег на двух счетах изменилась, хотя по правилам комиссии нет. Транзакция должна сохранять заданный бизнес-инвариант.
Читать ответРазмещение примитива зависит от контекста: локальная переменная относится к frame вызова, поле объекта — к данным объекта, элемент int[] — к массиву в heap. Примитив не означает «всегда стек».
Читать ответint[] хранит значения плотно, Integer[] — ссылки на отдельные объекты. В цикле new Integer создаёт миллион обёрток за проход, постоянно заменяя предыдущие и увеличивая давление на GC.
Читать ответDirty read — чтение ещё не зафиксированного изменения другой транзакции. Non-repeatable read — повторное чтение одной строки видит уже другое зафиксированное значение.
Читать ответACID: Atomicity — всё или ничего; Consistency — сохранение заданных инвариантов; Isolation — правила видимости параллельных транзакций; Durability — сохранность подтверждённых изменений.
Читать ответfork создаёт дочерний процесс, продолжающий выполнение с той же точки: родитель получает PID ребёнка, ребёнок — 0, при ошибке возвращается −1.
Читать ответДля видео, которое должно играть только на активном экране, разумная база — play в viewDidAppear и pause в viewWillDisappear. Потребуются также события активности приложения.
Читать ответ