C# | Вопросы собесов
الذهاب إلى القناة على Telegram
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+nebTPWgpeGs1OWFi Задачи t.me/+Xy-0H7xKlgo0NDVi Вакансии t.me/+BQFHXZQ0zrViNGIy
إظهار المزيد5 048
المشتركون
-124 ساعات
-177 أيام
-2630 أيام
أرشيف المشاركات
5 048
🤔 Что произойдет, если у класса есть два интерфейса с одинаковыми методами и они реализованы явно?
5 048
📌 Когда инициируется сборка мусора?
💬 Спрашивают в 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.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 048
🤔 Что произойдет, если вызвать метод Dispose() у объекта, который реализует интерфейс IDisposable, дважды?
5 048
Партнёрская программа рекрутинга в Яндекс Еду
Станьте партнёром Яндекс Еды по привлечению курьеров и получите кучу преимуществ:
💰Платим до 25 000 ₽ за успешного кандидата
📞Поддержка на всех этапах
📅Свободное расписание
📊Удобные инструменты для работы
Приводите новых курьеров и получайте в среднем 187 000 ₽ в месяц!
Зарегистрироваться
#реклама
eda.yandex.ru
О рекламодателе
5 048
📌 Что такое индексы, какие типы бывают, использовал ли их на практике?
💬 Спрашивают в 33% собеседований
🤔 Индексы — это структуры данных, которые улучшают скорость операций выборки данных, но могут снижать производительность операций вставки, удаления и обновления из-за необходимости поддержания индекса в актуальном состоянии. Могут быть построены на одном или нескольких столбцах таблицы и позволяют быстро находить строки без необходимости сканирования всей таблицы.
🤔 Типы:
1️⃣ Одиночные индексы (Single-column indexes):
Индексируют значения одного столбца таблицы. Это основной тип индекса, используемый для ускорения запросов, фильтрующих или сортирующих данные по одному столбцу.
2️⃣ Составные индексы (Composite indexes):
Индексируют значения, основанные на нескольких столбцах. Они полезны, когда операции выборки, сортировки или объединения таблиц часто используют одни и те же комбинации столбцов.
3️⃣ Уникальные индексы (Unique indexes):
Гарантируют, что индексируемые значения уникальны. Они часто используются для обеспечения уникальности столбцов или набора столбцов в таблице.
4️⃣ Полнотекстовые индексы (Full-text indexes):
Позволяют проводить полнотекстовый поиск по текстовым данным в базе данных. Они оптимизированы для поиска слов в больших текстовых полях и часто используются в системах, где требуется поиск по содержимому статей, блогов и других текстовых документов.
5️⃣ Пространственные индексы (Spatial indexes):
Используются для индексации пространственных данных, таких как географические объекты. Они оптимизируют запросы, включающие пространственные операции, такие как нахождение объектов внутри заданной области.
На практике индексы — это мощный инструмент для оптимизации производительности баз данных. Однако они должны использоваться осмысленно.
🤔 Осмысленное использование:
➕ Анализ запросов:
Использование индексов должно начинаться с анализа наиболее часто выполняемых запросов и понимания структуры данных. Профилирование и анализ планов выполнения запросов помогут определить, где индексы могут быть полезны.
➕ Сбалансированное использование:
Несмотря на преимущества ускорения чтения, индексы добавляют накладные расходы на операции записи. Каждая операция вставки, удаления или изменения данных требует обновления индексов, что может замедлить эти операции.
➕ Обслуживание индексов:
С течением времени индексы могут фрагментироваться, особенно в активно изменяемых базах данных. Регулярное обслуживание, такое как реорганизация и перестроение индексов, помогает поддерживать их производительность на оптимальном уровне.
🤔 Краткий ответ:
Индексы особенно полезны в больших базах данных, где правильно построенные индексы могут сократить время ответа запросов с нескольких минут до секунд. Важно помнить о затратах на поддержание индексов и влиянии на производительность операций записи. Поэтому перед созданием индекса всегда следует тщательно анализировать и тестировать его влияние на систему.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
5 048
Jobski - твой помощник при поиске работы в IT
Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек технологий.
Узнать больше
#реклама
jobski.ru
О рекламодателе
5 048
🤔 Что произойдет, если вызвать await внутри метода, который не помечен как async?
5 048
📌 Что такое 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 значительно упрощает работу с реляционными базами данных, позволяя разработчикам сосредоточиться на бизнес-логике, вместо деталей реализации доступа к данным. Он предлагает мощные инструменты для абстракции доступа к данным, что делает код чище, проще для понимания и поддержки.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 048
🤩 С чего начать свой путь в IT? И какой самый популярный язык на данный момент?
🫢 Самый популярный язык программирования на сегодня, по данным TIOBE, — Python. Он держится в лидерах уже пять лет.
🤯 На нем написаны: Blender, Uber, World of Tanks, YouTube.
🙏 Даже сам Илон Маск, а точнее, его компания NASA использует этот язык в научных исследованиях
Не изучая Python, ты упускаешь возможность быть востребованным, поэтому подписывайся
5 048
🧑💻 Если твой английский позволяет ответить только на вопрос "Do you speak English", то с этим нужно что-то делать, будучи программистом.
🫤 Ты в курсе, что ...
- говорят по-английски — 20% из всех людей.
- Большое кол-во IT документации написано на английском.
Хочешь понимать код лучше? Изучи язык, который используется в его основе.
📕 На нашем канале ты постепенно будешь набираться опыта, в этом тебе помогут:
- Тесты для изучения английского: проверьте свои знания на практике.
- Английский через мемы: учите язык весело и с интересом.
- Шпаргалки для повторения: закрепите знания быстро и эффективно.
- Английский сленг программиста: станьте настоящим профи в коммуникации.
🔥 Маленький шаг в изучении иностранного откроет перед тобой большие возможности будущего специалиста и значительно повысит твое зп.
🌸 Подпишись, do it!
5 048
📌 В чем разница между асинхронностью и многопоточностью?
💬 Спрашивают в 33% собеседований
🤔 Асинхронность и многопоточность — это два различных, но часто связанных понятия, которые используются для управления выполнением задач таким образом, чтобы повысить эффективность и отзывчивость приложений. Хотя они оба направлены на оптимизацию выполнения программ, между ними есть ключевые различия в подходах и использовании.
🤔 Асинхронность
Это подход, при котором задача может выполняться независимо от основного потока программы, и не блокирует его выполнение в ожидании завершения. Это позволяет программе продолжать работу, пока выполняется асинхронная операция, например, доступ к файлу или сетевой запрос. Ключевая особенность асинхронности заключается в том, что она позволяет обрабатывать задачи без блокировки, улучшая отзывчивость и производительность приложения, особенно в средах с графическим интерфейсом пользователя или в серверных приложениях.
🤔 Примеры:
➕ Запросы к веб-сервисам
➕ Операции чтения/записи файлов
➕ Базы данных или сетевые операции
🤔 Многопоточность
Это подход, при котором несколько потоков исполнения работают параллельно, что позволяет выполнять несколько операций одновременно. Это может быть реализовано как на одном процессоре с использованием временной мультиплексированной многозадачности, так и на многоядерных процессорах, где каждый поток может выполняться фактически одновременно на своем ядре. Многопоточность идеально подходит для задач, требующих тяжелых вычислений, и может значительно ускорить выполнение программы за счет распараллеливания работы.
🤔 Примеры:
➕Параллельные вычисления и обработка больших объемов данных
➕Серверы, обрабатывающие множество одновременных соединений
➕Реализация фоновых задач, которые должны исполняться параллельно основному потоку
🤔 Ключевые различия
1️⃣ Цели использования:
Асинхронность обычно используется для улучшения отзывчивости приложений и эффективного использования ожидания (например, I/O операции), тогда как многопоточность применяется для ускорения выполнения вычислительно сложных задач за счет параллелизма.
2️⃣ Управление ресурсами:
Асинхронные операции часто управляются операционной системой и могут использовать меньше ресурсов, поскольку не требуют постоянного выделения отдельного потока. Многопоточность требует более активного управления потоками, что может привести к большему потреблению памяти и процессорного времени.
3️⃣ Сложность разработки:
Работа с многопоточностью часто более сложна из-за необходимости синхронизации доступа к общим ресурсам и управления состоянием, что может привести к ошибкам, таким как взаимные блокировки и состояния гонки. Асинхронное программирование также требует понимания, но оно более структурировано и часто управляется с помощью высокоуровневых паттернов и библиотек.
🤔 Краткий ответ:
Оба эти подхода важны в современной разработке ПО и могут использоваться вместе для создания высокопроизводительных, масштабируемых и отзывчивых приложений.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
5 048
🤔 Какой метод используется для копирования содержимого одного массива в другой в C#?
5 048
📌Что такое ООП?
💬 Спрашивают в 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 Кошка();
мояКошка.Голос(); // Вывод: Мяу
}
}
В этом примере класс Животное абстрагирует общее понятие животного с методом Голос. Классы Собака и Кошка наследуют от Животное и реализуют метод Голос, демонстрируя полиморфизм — один интерфейс, разные реализации.
🤔 Краткий ответ:
ООП — это подход, который использует объекты для моделирования данных и поведения программы. Основывается на четырех столпах: инкапсуляция, наследование, полиморфизм и абстракция, что облегчает разработку, тестирование и поддержку сложных программных систем.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 048
🤔 Что произойдет, если попытаться вызвать виртуальный метод из конструктора базового класса?
5 048
📌Что такое полиморфизм?
💬 Спрашивают в 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, в частности, в обеспечении гибкости и масштабируемости программного обеспечения.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 048
🔥 Один в поле не воин, поэтому топовый программист должен находится в топ команде.
🧑💻 Марк Цукерберг создал первоначальную версию Facebook в одиночку, но для превращения стартапа в глобальную социальную сеть потребовалась мощная команда.
👌 IT мероприятия - одно из тех мест, где можно найти единомышленников в данной нише.
🔥 Подпишись на канал IT события, чтобы не упустить возможность в реализации своего потенциала.
5 048
I-Pro Gigabit – Защита для своих от своих!
Сделано в России для надежной защиты вашего сетевого оборудования от молний и скачков напряжения. I-Pro Gigabit – это гарантия стабильной работы вашей сети в любых условиях. Преимущества:
-Высокая эффективность защиты
-Простота установки и использования
-Долговечность и надежность
⚡ Поддержите отечественного производителя и обезопасьте свою технику! Закажите I-Pro Gigabit прямо сейчас. Переходите по ссылке, чтобы узнать больше.
Перейти на сайт
#реклама
netprotectors.ru
О рекламодателе
5 048
🤔 Какое ключевое слово в C# используется для явного указания, что метод или класс доступен только в текущей сборке и не может быть виден в других сборках?
5 048
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
