Каковы основные принципы SOLID? пять принципов объектно-ориентированного проектирования S — Single Responsibility Principle (SRP): у класса должна быть только одна ответственность O — Open/Closed Principle (OCP):…
В каких случаях использовать WorkManager, а в каких — Service? WorkManager выбирают для отложенных и гарантированно выполняемых задач, которые должны завершиться даже после перезагрузки устройства WorkManager умеет…
В каком случае интерфейс равен nil? Интерфейс в Go включает две составляющие: тип и значение. Значение интерфейса считается nil только тогда, когда обе его части равны nil. Если тип определён, а значение равно nil,…
Когда проверяется интерфейс: compile-time или runtime? Контекст: типизация и объектно-ориентированное программирование В статически типизированных языках, включая Java и C#, интерфейсы проверяются на этапе…
нормализация выполняется поэтапно каждая последующая нормальная форма содержит требования всех предыдущих несоблюдение ранних норм нарушает саму логику нормализации поэтапная проверка помогает избежать избыточности и…
Иммутабельность String и String Pool Объекты String в Java нельзя изменить после создания Неизменяемость обеспечивает потокобезопасность и возможность кеширования String Pool — специальная область памяти для строковых…
разные подходы: композиция объектов и иерархия типов встраивание добавляет объект в структуру и использует делегирование наследование расширяет базовый класс и позволяет переопределять его поведение embedding не…
ArrayList и LinkedList: различия и эффективные операции ArrayList построен на основе динамического массива: его элементы размещаются в соседних ячейках памяти Получение элемента по индексу выполняется быстро: O(1)…
Чем sealed-классы отличаются от enum и как работают их конструкторы? sealed-классы задают тип с ограниченным набором подклассов и обеспечивают контроль иерархии enum представляет специализированный класс с…
Чем отличаются интерфейсы Go и абстрактные классы C#? интерфейс Go описывает только наблюдаемые методы и не содержит реализации абстрактный класс может включать реализацию методов и состояние в Go действует утиный…
Отличие zero value слайса от zero value мапы Слайс и мапа как контейнеры в Go Zero value слайса — это nil-срез с длиной и ёмкостью 0, который указывает на nil Чтение разрешено, однако запись невозможна без…
Область памяти: Stack предназначен для локальных переменных и вызовов функций, а Heap — для динамических данных и объектов с произвольным сроком жизни Управление: Stack освобождается автоматически по принципу LIFO,…