На странице собраны вопросы по Java — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, database, optimization.
Ключевое отличие Serializable от Parcelable Serializable — стандартный интерфейс Java, предназначенный для преобразования объекта в поток байтов. Parcelable — интерфейс Android, используемый для передачи объектов…
Чем отличаются WHERE и HAVING в SQL-запросах SQL-запросы и фильтрация данных WHERE отбирает строки до агрегации применяется непосредственно к строкам таблицы HAVING используется после агрегации (GROUP BY) проверяет…
Чем отличаются git rebase и git merge Git merge объединяет ветки и создаёт merge commit Git rebase перестраивает историю, перенося коммиты на новую базу Merge оставляет всю историю ветвления Rebase формирует линейную…
Различия push- и pull-моделей Архитектурные способы передачи данных Push: источник самостоятельно отправляет данные подписчикам Pull: получатель сам запрашивает данные у источника Push уменьшает задержку, но усложняет…
Пессимистичные и оптимистичные блокировки Различие в стратегии обработки конфликтов: Пессимистичные: ресурс блокируется заранее, поскольку конфликт считается вероятным Оптимистичные: операции выполняются без…
Приостановка и блокировка потока: в чём отличие При приостановке (suspend) поток добровольно прекращает выполнение и ожидает внешнего сигнала При блокировке (block) поток ожидает ресурс или событие — например, I/O или…
Фабричный метод и Builder: ключевые различия Оба паттерна относятся к созданию объектов, однако предназначены для разных задач Фабричный метод передаёт создание объектов подклассам Для определения конкретного класса…
системное изменение, которое влияет на ресурсы UI например, поворот экрана, смена языка или подключение клавиатуры по умолчанию приводит к пересозданию Activity пересоздание требуется, чтобы применить обновлённые…
Микросервисы или монолит: что выбрать? микросервисы: совокупность независимых сервисов, каждый из которых реализует отдельную бизнес-функцию монолит: одно цельное приложение с тесно связанными кодом и данными…
intern() — метод управления памятью строк в Java он помещает строку в строковый пул JVM, если такого значения там ещё нет если строка уже присутствует, метод возвращает ссылку на существующий объект, иначе добавляет…
volatile — модификатор переменных в Java и C++ Он обеспечивает видимость изменений между потоками: чтение и запись выполняются с обращением к основной памяти volatile препятствует оптимизациям компилятора и CPU,…
Для чего в Java используется ключевое слово synchronized? механизм синхронизации потоков в Java обеспечивает взаимное исключение (mutex) при обращении к коду или ресурсу захватывает объект-монитор одним потоком не…