ar
Feedback
C# | Вопросы собесов

C# | Вопросы собесов

الذهاب إلى القناة على Telegram
5 048
المشتركون
-124 ساعات
-177 أيام
-2630 أيام
أرشيف المشاركات
🤔 Что произойдет, если у класса есть два интерфейса с одинаковыми методами и они реализованы явно?
Anonymous voting

📌 Когда инициируется сборка мусора? 💬 Спрашивают в 56% собеседований Сборка мусора (Garbage Collection, GC) автоматически управляет выделением и освобождением памяти в управляемом куче. Сборка мусора инициируется автоматически в следующих ситуациях: 1️⃣ Недостаток памяти: Если приложению требуется больше памяти для выделения объектов в управляемой куче и доступной памяти недостаточно, CLR (Common Language Runtime) автоматически инициирует сборку мусора для освобождения памяти, занятой неиспользуемыми объектами. 2️⃣ Достигнут порог выделения памяти: .NET Framework использует алгоритм, который основывается на объеме выделенной памяти. Для каждого поколения объектов (0, 1, и 2) определен пороговый объем выделенной памяти. Когда приложение выделяет память и этот порог достигается, происходит сборка мусора соответствующего поколения. 3️⃣ Вызов GC.Collect(): Разработчики могут явно запросить сборку мусора, вызвав метод GC.Collect(). Однако использовать этот метод нужно осторожно, так как его неправильное использование может привести к снижению производительности приложения. В большинстве случаев следует избегать явного вызова сборки мусора и полагаться на автоматическое управление памятью CLR. 4️⃣ Завершение работы приложения: При завершении работы приложения .NET Framework автоматически выполняет сборку мусора для очистки всех управляемых объектов, даже если они еще доступны. 5️⃣ Низкий уровень памяти в системе: Если операционная система сообщает о низком уровне доступной памяти, CLR может инициировать сборку мусора в попытке освободить память для системы. 🤔 Краткий ответ: Сборка мусора проектировалась таким образом, чтобы минимизировать необходимость вмешательства программиста в процесс управления памятью. Она позволяет автоматически решать большинство задач по освобождению памяти, что значительно упрощает разработку и повышает надежность программ на .NET. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что произойдет, если вызвать метод Dispose() у объекта, который реализует интерфейс IDisposable, дважды?
Anonymous voting

Партнёрская программа рекрутинга в Яндекс Еду Станьте партнёром Яндекс Еды по привлечению курьеров и получите кучу преимущест
Партнёрская программа рекрутинга в Яндекс Еду Станьте партнёром Яндекс Еды по привлечению курьеров и получите кучу преимуществ: 💰Платим до 25 000 ₽ за успешного кандидата 📞Поддержка на всех этапах 📅Свободное расписание 📊Удобные инструменты для работы Приводите новых курьеров и получайте в среднем 187 000 ₽ в месяц! Зарегистрироваться #реклама eda.yandex.ru О рекламодателе

📌 Что такое индексы, какие типы бывают, использовал ли их на практике? 💬 Спрашивают в 33% собеседований 🤔 Индексы — это структуры данных, которые улучшают скорость операций выборки данных, но могут снижать производительность операций вставки, удаления и обновления из-за необходимости поддержания индекса в актуальном состоянии. Могут быть построены на одном или нескольких столбцах таблицы и позволяют быстро находить строки без необходимости сканирования всей таблицы. 🤔 Типы: 1️⃣ Одиночные индексы (Single-column indexes): Индексируют значения одного столбца таблицы. Это основной тип индекса, используемый для ускорения запросов, фильтрующих или сортирующих данные по одному столбцу. 2️⃣ Составные индексы (Composite indexes): Индексируют значения, основанные на нескольких столбцах. Они полезны, когда операции выборки, сортировки или объединения таблиц часто используют одни и те же комбинации столбцов. 3️⃣ Уникальные индексы (Unique indexes): Гарантируют, что индексируемые значения уникальны. Они часто используются для обеспечения уникальности столбцов или набора столбцов в таблице. 4️⃣ Полнотекстовые индексы (Full-text indexes): Позволяют проводить полнотекстовый поиск по текстовым данным в базе данных. Они оптимизированы для поиска слов в больших текстовых полях и часто используются в системах, где требуется поиск по содержимому статей, блогов и других текстовых документов. 5️⃣ Пространственные индексы (Spatial indexes): Используются для индексации пространственных данных, таких как географические объекты. Они оптимизируют запросы, включающие пространственные операции, такие как нахождение объектов внутри заданной области. На практике индексы — это мощный инструмент для оптимизации производительности баз данных. Однако они должны использоваться осмысленно. 🤔 Осмысленное использование:Анализ запросов: Использование индексов должно начинаться с анализа наиболее часто выполняемых запросов и понимания структуры данных. Профилирование и анализ планов выполнения запросов помогут определить, где индексы могут быть полезны. ➕ Сбалансированное использование: Несмотря на преимущества ускорения чтения, индексы добавляют накладные расходы на операции записи. Каждая операция вставки, удаления или изменения данных требует обновления индексов, что может замедлить эти операции. ➕ Обслуживание индексов: С течением времени индексы могут фрагментироваться, особенно в активно изменяемых базах данных. Регулярное обслуживание, такое как реорганизация и перестроение индексов, помогает поддерживать их производительность на оптимальном уровне. 🤔 Краткий ответ: Индексы особенно полезны в больших базах данных, где правильно построенные индексы могут сократить время ответа запросов с нескольких минут до секунд. Важно помнить о затратах на поддержание индексов и влиянии на производительность операций записи. Поэтому перед созданием индекса всегда следует тщательно анализировать и тестировать его влияние на систему. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Jobski - твой помощник при поиске работы в IT Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек техно
Jobski - твой помощник при поиске работы в IT Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек технологий. Узнать больше #реклама jobski.ru О рекламодателе

🤔 Что произойдет, если вызвать await внутри метода, который не помечен как async?
Anonymous voting

📌 Что такое EF? 💬 Спрашивают в 33% собеседований 🤔 Entity Framework (EF) — это объектно-реляционный маппер (ORM), разработанный компанией Microsoft, позволяющий работать с данными на высоком уровне абстракции, оперируя объектами и классами вместо прямых запросов к базе данных. Предоставляет мощные возможности для моделирования, запросов, сохранения и обработки данных в различных базах данных, таких как SQL Server, MySQL, SQLite и других. 🤔 Основные компоненты и возможности: 1️⃣DbContext: Это основной класс в EF, который управляет взаимодействием с базой данных. Он предоставляет доступ к функциональности, такой как выполнение запросов, сохранение данных и настройка моделей. 2️⃣ DbSet: Это коллекции объектов определенного класса, которые представляют собой таблицы в базе данных. Классы, которые представляют данные в таблицах, обычно называются сущностями. 3️⃣ LINQ to Entities: EF позволяет использовать LINQ (Language Integrated Query) для написания запросов к базе данных, которые затем транслируются в SQL-запросы. Это позволяет разработчикам писать запросы к данным в объектно-ориентированном стиле на C#. 4️⃣ Миграции: EF поддерживает механизм миграций для управления изменениями в структуре базы данных по мере развития приложения. Миграции позволяют автоматически обновлять схему базы данных в соответствии с изменениями в моделях данных. 5️⃣ Конвенции и настройки: Entity Framework использует набор конвенций для автоматического маппинга классов на таблицы и их свойств на столбцы. Разработчики могут переопределить и дополнить эти конвенции с помощью аннотаций данных или Fluent API. 🤔 Версии:Entity Framework 6 (EF6): Последняя версия для .NET Framework. EF6 продолжает поддерживаться и развиваться, включая новые функции и исправления ошибок. ➕ Entity Framework Core (EF Core): Современная, легковесная, расширяемая и кросс-платформенная версия Entity Framework, разработанная для .NET Core. EF Core предназначен для использования в модернизированных и масштабируемых приложениях и поддерживает широкий спектр баз данных.
using (var context = new BloggingContext())
{
    var blog = new Blog { Url = "http://blogs.msdn.com/adonet" };
    context.Blogs.Add(blog);
    context.SaveChanges();

    var blogs = context.Blogs
                       .Where(b => b.Url.Contains("msdn"))
                       .ToList();
    foreach (var b in blogs)
    {
        Console.WriteLine(b.Url);
    }
}
В этом примере создается новый объект Blog, добавляется в контекст и сохраняется в базе данных. Затем выполняется запрос для извлечения блогов с определенным URL. 🤔 Краткий ответ: Entity Framework значительно упрощает работу с реляционными базами данных, позволяя разработчикам сосредоточиться на бизнес-логике, вместо деталей реализации доступа к данным. Он предлагает мощные инструменты для абстракции доступа к данным, что делает код чище, проще для понимания и поддержки. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤩 С чего начать свой путь в IT? И какой самый популярный язык на данный момент? 🫢 Самый популярный язык программирования на
🤩 С чего начать свой путь в IT? И какой самый популярный язык на данный момент? 🫢 Самый популярный язык программирования на сегодня, по данным TIOBE, — Python. Он держится в лидерах уже пять лет. 🤯 На нем написаны: Blender, Uber, World of Tanks, YouTube. 🙏 Даже сам Илон Маск, а точнее, его компания NASA использует этот язык в научных исследованиях Не изучая Python, ты упускаешь возможность быть востребованным, поэтому подписывайся

🤔 Что такое делегат в C#?
Anonymous voting

🧑‍💻 Если твой английский позволяет ответить только на вопрос "Do you speak English", то с этим нужно что-то делать, будучи программистом. 🫤 Ты в курсе, что ... - говорят по-английски — 20% из всех людей. - Большое кол-во IT документации написано на английском. Хочешь понимать код лучше? Изучи язык, который используется в его основе. 📕 На нашем канале ты постепенно будешь набираться опыта, в этом тебе помогут: - Тесты для изучения английского: проверьте свои знания на практике. - Английский через мемы: учите язык весело и с интересом. - Шпаргалки для повторения: закрепите знания быстро и эффективно. - Английский сленг программиста: станьте настоящим профи в коммуникации. 🔥 Маленький шаг в изучении иностранного откроет перед тобой большие возможности будущего специалиста и значительно повысит твое зп. 🌸 Подпишись, do it!

📌 В чем разница между асинхронностью и многопоточностью? 💬 Спрашивают в 33% собеседований 🤔 Асинхронность и многопоточность — это два различных, но часто связанных понятия, которые используются для управления выполнением задач таким образом, чтобы повысить эффективность и отзывчивость приложений. Хотя они оба направлены на оптимизацию выполнения программ, между ними есть ключевые различия в подходах и использовании. 🤔 Асинхронность Это подход, при котором задача может выполняться независимо от основного потока программы, и не блокирует его выполнение в ожидании завершения. Это позволяет программе продолжать работу, пока выполняется асинхронная операция, например, доступ к файлу или сетевой запрос. Ключевая особенность асинхронности заключается в том, что она позволяет обрабатывать задачи без блокировки, улучшая отзывчивость и производительность приложения, особенно в средах с графическим интерфейсом пользователя или в серверных приложениях. 🤔 Примеры: ➕ Запросы к веб-сервисам ➕ Операции чтения/записи файлов ➕ Базы данных или сетевые операции 🤔 Многопоточность Это подход, при котором несколько потоков исполнения работают параллельно, что позволяет выполнять несколько операций одновременно. Это может быть реализовано как на одном процессоре с использованием временной мультиплексированной многозадачности, так и на многоядерных процессорах, где каждый поток может выполняться фактически одновременно на своем ядре. Многопоточность идеально подходит для задач, требующих тяжелых вычислений, и может значительно ускорить выполнение программы за счет распараллеливания работы. 🤔 Примеры: ➕Параллельные вычисления и обработка больших объемов данных ➕Серверы, обрабатывающие множество одновременных соединений ➕Реализация фоновых задач, которые должны исполняться параллельно основному потоку 🤔 Ключевые различия 1️⃣ Цели использования: Асинхронность обычно используется для улучшения отзывчивости приложений и эффективного использования ожидания (например, I/O операции), тогда как многопоточность применяется для ускорения выполнения вычислительно сложных задач за счет параллелизма. 2️⃣ Управление ресурсами: Асинхронные операции часто управляются операционной системой и могут использовать меньше ресурсов, поскольку не требуют постоянного выделения отдельного потока. Многопоточность требует более активного управления потоками, что может привести к большему потреблению памяти и процессорного времени. 3️⃣ Сложность разработки: Работа с многопоточностью часто более сложна из-за необходимости синхронизации доступа к общим ресурсам и управления состоянием, что может привести к ошибкам, таким как взаимные блокировки и состояния гонки. Асинхронное программирование также требует понимания, но оно более структурировано и часто управляется с помощью высокоуровневых паттернов и библиотек. 🤔 Краткий ответ: Оба эти подхода важны в современной разработке ПО и могут использоваться вместе для создания высокопроизводительных, масштабируемых и отзывчивых приложений. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какой метод используется для копирования содержимого одного массива в другой в C#?
Anonymous voting

📌Что такое ООП? 💬 Спрашивают в 56% собеседований 🤔 Объектно-ориентированное программирование (ООП) — это парадигма, основанная на концепции "объектов", которые могут содержать данные в виде полей, часто известных как атрибуты или свойства, и код, в виде процедур, часто известных как методы. ООП фокусируется на использовании объектов для моделирования реальных или абстрактных сущностей, упрощая разработку и поддержку программных систем. 🤔 Основные концепции: 1️⃣Инкапсуляция: Инкапсуляция заключается в сокрытии внутреннего состояния объекта от внешнего мира и предоставлении публичного интерфейса для взаимодействия с объектом. Это позволяет скрыть сложность внутри объектов и изменять внутреннюю реализацию без вреда для других частей программы. 2️⃣Наследование: Наследование позволяет создавать новые классы на основе уже существующих, перенимая их свойства и методы. Это обеспечивает иерархическую организацию классов и уменьшает дублирование кода. 3️⃣Полиморфизм: Полиморфизм дает возможность использовать объекты разных классов с одинаковым интерфейсом без информации о внутренней структуре объекта. В результате один и тот же метод может быть использован в разных контекстах для объектов разных типов. 4️⃣Абстракция: Абстракция позволяет сконцентрироваться на важных характеристиках объекта, не углубляясь в детали его реализации. Это достигается за счет определения абстрактных классов и интерфейсов, которые описывают общий для группы объектов функционал. 🤔 Пример:
public abstract class Животное
{
    public abstract void Голос(); // Абстрактный метод, определение голоса животного
}

public class Собака : Животное
{
    public override void Голос()
    {
        Console.WriteLine("Гав");
    }
}

public class Кошка : Животное
{
    public override void Голос()
    {
        Console.WriteLine("Мяу");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Животное мояСобака = new Собака();
        мояСобака.Голос(); // Вывод: Гав

        Животное мояКошка = new Кошка();
        мояКошка.Голос(); // Вывод: Мяу
    }
}
В этом примере класс Животное абстрагирует общее понятие животного с методом Голос. Классы Собака и Кошка наследуют от Животное и реализуют метод Голос, демонстрируя полиморфизм — один интерфейс, разные реализации. 🤔 Краткий ответ: ООП — это подход, который использует объекты для моделирования данных и поведения программы. Основывается на четырех столпах: инкапсуляция, наследование, полиморфизм и абстракция, что облегчает разработку, тестирование и поддержку сложных программных систем. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что произойдет, если попытаться вызвать виртуальный метод из конструктора базового класса?
Anonymous voting

📌Что такое полиморфизм? 💬 Спрашивают в 56% собеседований 🤔 Полиморфизм — это ключевой принцип ООП, который позволяет одному и тому же интерфейсу принимать множество различных форм. В контексте программирования он обеспечивает возможность работать с объектами разных классов, как если бы они были объектами одного класса, основываясь на общности их поведения. Это достигается за счет использования общих интерфейсов или классов наследования. Полиморфизм может проявляться в двух основных формах: 1️⃣Статический (или компиляционный) полиморфизм: Реализуется с помощью перегрузки методов (методы в одном классе имеют одинаковое имя, но различаются количеством или типом параметров) и перегрузки операторов. Статический полиморфизм определяется во время компиляции. 🤔 Пример:
      class MathOperations
   {
       public int Multiply(int a, int b)
       {
           return a * b;
       }

       public int Multiply(int a, int b, int c)
       {
           return a * b * c;
       }
   }   
2️⃣ Динамический (или времени выполнения) полиморфизм: Реализуется с помощью переопределения методов (когда методы в дочернем классе переопределяют методы родительского класса). Динамический полиморфизм использует механизм виртуальных методов и их переопределения (override) и определяется во время выполнения программы. 🤔 Пример:
      class Animal
   {
       public virtual void MakeSound()
       {
           Console.WriteLine("Some sound");
       }
   }

   class Dog : Animal
   {
       public override void MakeSound()
       {
           Console.WriteLine("Woof");
       }
   }   
В этом примере метод MakeSound в классе Animal переопределяется в классе Dog для предоставления реализации, специфичной для собак. При вызове MakeSound на экземпляре Dog будет использоваться переопределенная версия метода, что является демонстрацией динамического полиморфизма. 🤔 Краткий ответ: Полиморфизм упрощает добавление новых классов и функциональностей в программы без изменения существующего кода. Он способствует уменьшению связанности компонентов системы, упрощению ее расширения и облегчению поддержки. Полиморфизм также играет важную роль в реализации принципов SOLID, в частности, в обеспечении гибкости и масштабируемости программного обеспечения. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🔥 Один в поле не воин, поэтому топовый программист должен находится в топ команде. 🧑‍💻 Марк Цукерберг создал первоначальну
🔥 Один в поле не воин, поэтому топовый программист должен находится в топ команде. 🧑‍💻 Марк Цукерберг создал первоначальную версию Facebook в одиночку, но для превращения стартапа в глобальную социальную сеть потребовалась мощная команда. 👌 IT мероприятия - одно из тех мест, где можно найти единомышленников в данной нише. 🔥 Подпишись на канал IT события, чтобы не упустить возможность в реализации своего потенциала.

I-Pro Gigabit – Защита для своих от своих! Сделано в России для надежной защиты вашего сетевого оборудования от молний и скачков напряжения. I-Pro Gigabit – это гарантия стабильной работы вашей сети в любых условиях. Преимущества: -Высокая эффективность защиты -Простота установки и использования -Долговечность и надежность ⚡ Поддержите отечественного производителя и обезопасьте свою технику! Закажите I-Pro Gigabit прямо сейчас. Переходите по ссылке, чтобы узнать больше. Перейти на сайт #реклама netprotectors.ru О рекламодателе

🤔 Какое ключевое слово в C# используется для явного указания, что метод или класс доступен только в текущей сборке и не может быть виден в других сборках?
Anonymous voting

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе