C# | Вопросы собесов
описание
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
5 002
подписчиков
Охват к подписчикам
10,3%
ERR
Реакции к просмотрам
0,07%
11 на 33 постов
Пересылки к просмотрам
0,50%
74
Постов в день
2,0
всего 31
Где отзываются чаще
доля реакций к просмотрам- 3 авг.🤔 Что такое hashset? HashSet<T> — это коллекция уникальных элементов, которая обеспечивает быстрый поиск, добавление и удаление. В основе HashSet<T> лежит хеш-таблица, что делает операции очень быстрыми (почти за O(1) в среднем случае). 🚩Создание и использование `HashSet<T>` Простой пример HashSet<int> numbers = new HashSet<int> { 1, 2, 3, 4, 5 }; // Добавление элементов (дубликаты не добавляются) numbers.Add(3); // Уже есть в HashSet, не добавится numbers.Add(6); // Добавится // Вывод всех элементов foreach (int num in numbers) { Console.Write(num + " "); } Вывод 1 2 3 4 5 6 🚩Основные операции Пример работы с Contains и Remove if (numbers.Contains(3)) { numbers.Remove(3); } Console.WriteLine(string.Join(", ", numbers)); Вывод 1, 2, 4, 5, 6 🚩Операции над множествами HashSet<T> поддерживает математические операции над множествами, такие как пересечение, объединение и разность. Пересечение (IntersectWith) HashSet<int> set1 = new HashSet<int> { 1, 2, 3, 4 }; HashSet<int> set2 = new HashSet<int> { 3, 4, 5, 6 }; set1.IntersectWith(set2); // Оставит только {3, 4} Console.WriteLine(string.Join(", ", set1)); Вывод 3, 4 Объединение (UnionWith) set1 = new HashSet<int> { 1, 2, 3 }; set2 = new HashSet<int> { 3, 4, 5 }; set1.UnionWith(set2); // set1 = {1, 2, 3, 4, 5} Console.WriteLine(string.Join(", ", set1)); Вывод 1, 2, 3, 4, 5 Разность (ExceptWith) set1 = new HashSet<int> { 1, 2, 3, 4, 5 }; set2 = new HashSet<int> { 3, 4 }; set1.ExceptWith(set2); // Удалит {3, 4}, останется {1, 2, 5} Console.WriteLine(string.Join(", ", set1)); Вывод 1, 2, 5 Ставь 👍 и забирай 📚 Базу знаний0,54%
- 27 июл.🤔 Какие есть типы LINQ? LINQ делится на несколько типов по источнику данных: - LINQ to Objects — для коллекций в памяти. - LINQ to XML — для работы с XML-структурами. - LINQ to Entities — для доступа к базам данных через Entity Framework. - LINQ to SQL — устаревший способ работы с SQL. - LINQ to DataSet — для ADO.NET DataSet. - Также возможны кастомные реализации (IQueryable, провайдеры LINQ). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,44%
- 4 авг.🤔 Что такое метод Finalize? Метод Finalize() представляет собой специальный метод, который предназначен для выполнения финальной очистки ресурсов перед тем, как объект будет уничтожен сборщиком мусора. Это метод, который может быть определен в классе для очистки неуправляемых ресурсов, если класс не реализует интерфейс IDisposable. 🚩Особенности метода 🟠Автоматический вызов Сборщик мусора автоматически вызывает Finalize() на объекте, который не имеет других активных ссылок и который определяет финализатор. Это происходит непосредственно перед тем, как сборщик мусора освобождает память, занимаемую объектом. 🟠Определение в базовом классе `Object` Все объекты наследуют от базового класса Object, который предоставляет реализацию Finalize(). Однако в большинстве случаев Finalize() не имеет реализации и не делает ничего, пока не будет переопределен в производном классе. 🟠Замедление сборки мусора Наличие объектов с финализаторами может замедлить процесс сборки мусора, так как объекты, требующие финализации, должны быть обработаны дважды: сначала они помещаются в очередь финализации, а затем их память освобождается после выполнения Finalize(). class ResourceWrapper { // Конструктор public ResourceWrapper() { // Инициализация ресурсов } // Финализатор ~ResourceWrapper() { // Код очистки ресурсов } } Ставь 👍 и забирай 📚 Базу знаний0,33%
- 15 авг.🤔 Какой слой rest и swap с точки зрения трехслойной архитектуры? В трехслойной архитектуре (трехуровневая архитектура), также известной как многоуровневая архитектура, приложения разделяются на три логических слоя: 🟠Презентационный слой (Presentation Layer) Отвечает за взаимодействие с пользователем. Веб-интерфейсы, мобильные приложения, десктопные приложения. Примеры: HTML/CSS/JavaScript для веб-приложений, UI-компоненты в мобильных и десктопных приложениях. 🟠Логический слой (Business Logic Layer) Содержит бизнес-логику и правила приложения. Обрабатывает данные, выполняет вычисления, применяет бизнес-правила. Примеры: классы и методы, реализующие бизнес-логику, сервисы, обработчики данных. 🟠Слой данных (Data Access Layer): Отвечает за взаимодействие с источниками данных. Операции с базами данных, файловыми системами, внешними сервисами. Примеры: репозитории, Data Access Objects (DAO), API-клиенты для доступа к внешним системам. 🚩REST REST — это архитектурный стиль для разработки веб-сервисов. RESTful сервисы используют стандартные HTTP методы (GET, POST, PUT, DELETE и т.д.) для работы с ресурсами. С точки зрения трехслойной архитектуры: Презентационный слой: Вызовы REST API могут происходить с клиентской стороны (например, AJAX запросы из веб-интерфейса) или через клиентские приложения. Пример: фронтенд веб-приложения, который взаимодействует с REST API. Логический слой: REST API реализует бизнес-логику и выступает посредником между презентационным слоем и слоем данных. Пример: контроллеры и сервисы, обрабатывающие REST запросы и выполняющие соответствующую бизнес-логику. Слой данных: REST API может взаимодействовать с базой данных или другими источниками данных для получения и сохранения информации. Пример: методы в API, которые выполняют запросы к базе данных через репозитории или DAO. 🚩SWAP SWAP — это гипотетический или менее распространенный термин, часто интерпретируемый как упрощенный API для веб-приложений. Презентационный слой Клиентские приложения или пользовательские интерфейсы могут вызывать методы SWAP для получения или отправки данных.Пример: веб-страницы или мобильные приложения, обращающиеся к SWAP для выполнения операций. Логический слой: SWAP обрабатывает бизнес-логику аналогично REST API, предоставляя упрощенные конечные точки для взаимодействия с данными. Пример: сервисы, которые реализуют простые операции (CRUD) без сложной бизнес-логики. Слой данных: SWAP взаимодействует с базой данных или другими источниками данных для выполнения операций чтения/записи. Пример: методы SWAP, которые обращаются к базе данных через абстрактные уровни доступа к данным. Ставь 👍 и забирай 📚 Базу знаний0,27%
- 13 авг.без подписи0,26%
- 10 авг.🤔 Какая есть классификация у кучи? В информатике и программировании куча (heap) может классифицироваться по нескольким критериям. Рассмотрим основные виды: 🟠По назначению: Куча памяти (Memory Heap) Используется для динамического выделения памяти в приложениях. В C# это управляется сборщиком мусора (GC - Garbage Collector). Примеры: объекты, созданные с помощью new, выделяются в управляемой куче. 🟠Структура данных «Куча» (Heap Data Structure) Это специальная бинарная структура данных, используемая в алгоритмах, например, в сортировке (Heap Sort) или в приоритетных очередях. Бывает максимальная куча (max-heap) и минимальная куча (min-heap). 🚩По типу управления памятью (для кучи памяти в языках программирования): 🟠Управляемая куча (Managed Heap) В C# и .NET память выделяется и освобождается автоматически с помощью GC. Разделяется на поколения (Generation 0, 1, 2), что оптимизирует работу сборщика мусора. 🟠Неуправляемая куча (Unmanaged Heap) Применяется в C/C++ и низкоуровневом коде, где управление памятью выполняется вручную (malloc/free, new/delete). В C# тоже можно работать с ней через Marshal или Unsafe код. 🟠По структуре данных (Heap Data Structure): 🟠Максимальная куча (Max Heap) Корневой узел содержит наибольшее значение, а дочерние узлы – меньшее. Используется в алгоритмах приоритетных очередей. 🟠Минимальная куча (Min Heap) Корневой узел содержит наименьшее значение, а дочерние узлы – большее. Применяется в алгоритме Дейкстры и других задачах. using System; using System.Collections.Generic; class Program { static void Main() { PriorityQueue<int, int> minHeap = new PriorityQueue<int, int>(); minHeap.Enqueue(5, 5); minHeap.Enqueue(3, 3); minHeap.Enqueue(8, 8); minHeap.Enqueue(1, 1); while (minHeap.Count > 0) { Console.WriteLine(minHeap.Dequeue()); // Выведет: 1, 3, 5, 8 } } } Ставь 👍 и забирай 📚 Базу знаний0,19%
- 02:16Переехать из мегаполиса проще, чем кажется А что, если после работы не нужно стоять в пробке, до школы — несколько минут, а природа - не только по выходным? Доброград — новый город во Владимирской области, в 2,5 часах от Москвы. Здесь всё важное на расстоянии 15 минут: 🎓 школы и детские сады 🏃♂️ бассейн, спорт, теннис, падел, вейк-парк и гольф-поле 😊 лес, озёра, парки и 25 км велодорожек ✨ рестораны и SPA ✅ медицина Дети могут сами добираться до школы. Спорт и любимые занятия становятся частью обычного дня. А вместо часов в дороге появляется время на семью, друзей и себя. И это не место, куда приезжают только на выходные. Здесь уже живут 3000 человек из 60+ регионов России. Выбирайте свой формат: готовые квартиры, таунхаусы или земельные участки. Узнать больше #реклама dobrograd.ru О рекламодателе0,00%
- 02:16без подписи0,00%
- 02:16без подписи0,00%
- 18:11🤔 Для чего нужны примитивы синхронизации? Примитивы синхронизации используются для управления доступом к общим ресурсам, чтобы избежать ошибок, когда потоки вмешиваются в работу друг друга. Они помогают обеспечить безопасное и последовательное выполнение в многопоточном окружении. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний0,00%
- 15:08Онлайн-магистратура для IT: ИТМО, МИФИ + Яндекс Программы онлайн-магистратуры ИТМО и МИФИ в партнёрстве с Яндексом. Актуальные знания, практическое обучение и гибкий график. Учитесь, совмещая с работой. Доступна господдержка оплаты, отсрочка от армии Перейти на сайт #реклама 16+ practicum.yandex.ru О рекламодателе0,00%
- 11:05🤔 Какие есть способы (протоколы) обмена данными между сервером и клиентом? При взаимодействии клиента и сервера используются различные*протоколы обмена данными, в зависимости от задачи, скорости, надежности и реального времени. 🚩HTTP(S) – стандартный протокол веба Клиент (браузер, мобильное приложение) делает запрос к серверу. Сервер отправляет ответ с данными (HTML, JSON, XML). Использует методы: GET, POST, PUT, DELETE и т. д. fetch('https://api.example.com/data') .then(response => response.json()) .then(data => console.log(data)); 🚩WebSocket – двусторонняя связь в реальном времени Клиент устанавливает постоянное соединение с сервером. Сервер и клиент могут отправлять друг другу данные в любое время. Используется для чата, онлайн-игр, бирж, обновлений в реальном времени. const socket = new WebSocket('wss://example.com/socket'); socket.onopen = () => socket.send('Привет, сервер!'); socket.onmessage = event => console.log('Сообщение от сервера:', event.data); 🚩SSE (Server-Sent Events) – поток данных от сервера Клиент делает HTTP-запрос, но соединение не закрывается. Сервер постепенно отправляет данные в виде событий (event-stream). Используется для новостей, биржевых данных, уведомлений. const eventSource = new EventSource('/events'); eventSource.onmessage = event => console.log('Новое сообщение:', event.data); 🚩gRPC – быстрый RPC поверх HTTP/2 Клиент вызывает удаленные методы напрямую как обычные функции. Работает на HTTP/2, использует бинарный формат Protocol Buffers (быстрее, чем JSON). Используется для высокопроизводительных API, микросервисов. import grpc import my_service_pb2 import my_service_pb2_grpc channel = grpc.insecure_channel('localhost:50051') stub = my_service_pb2_grpc.MyServiceStub(channel) response = stub.MyMethod(my_service_pb2.MyRequest(name="Alice")) print(response.message) 🚩MQTT – лёгкий протокол для IoT Работает по модели издатель/подписчик. Клиент подписывается на тему (topic) и получает сообщения, когда кто-то публикует данные. Используется для умных устройств, датчиков, IoT. const mqtt = require('mqtt'); const client = mqtt.connect('mqtt://broker.hivemq.com'); client.on('connect', () => { client.subscribe('myTopic'); client.publish('myTopic', 'Привет, MQTT!'); }); client.on('message', (topic, message) => { console.log(`Сообщение из ${topic}: ${message.toString()}`); }); Ставь 👍 и забирай 📚 Базу знаний0,00%