Какой рейтинг вас больше интересует?
|
Вопросы на собеседовании C#, Net, ASP.NET, SQL2013-03-24 01:52:00 (читать в оригинале)Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 26. Какие функции никогда не могут быть виртуальными? 27. Что такое компьютерная программа? 28. Последователдьность событий при загрузке HTML страници на клиенте и что на каждом событии делается? 29. Почему класс String sealed? 30. Чем отличаются HttpHandler и HttpModule? 31. Что такое маршалинг? 32. Что такое сериализация? 33. Как в dataset накладывать различные ограничения? 34. Чем коллекции отличаются от массивов? 35. Что такое COM+ и зачем он нужен? 41. Что такое delegate, MulticastDelegate и Delegate? 42. Protected internal - это и protected и internal или либо protected либо internal? 43. Могут ли в интерфейсе быть обьявленны event'ы? 44. Напишите функцию обхода произвольного дерева? 45. Методы-аксессоры add/remove. 46. Домены и процессы, для чего нужны и как взаимодействуют? 47. Что такое Lazy Initialization? 48. Что такое Abstract Factory? 49. Что такое WSDL? 50. Каков размер типа int в С#? 51. Как обьявляют двумерный массив в С#? 52. Какой проверить открыта коннекция к базе или закрыта? 53. Как выбрать все теги с одинаковым именем, не зависимо от их положения в иерархии? 55. UML диаграммы. 56. Что такое preceding-sibling? 57. Чем отличается visibility:hidden от display:none? 58. Какова максимальная длина строки запроса? 59. Чем Get запрос отличается от Post запроса? 60. Назовите методы аутентификации в .Net? 61. Обьясните 2 технологии ASP.NET используемые для отслеживания сессии? 62. В чем разница между Server.Transfer и Response.Redirect? 63. Какие есть способы управления состоянием сессии в ASP.NET? 64. Зачем нужна функция GetHashCode? 65. Чем Delegate от Event'a отличается? 66. Что такое Inversion of Control? Вопросы по SQL server:36. Что такое хранимые процедуы? Назовите их достоинства и недостатки.37. Что такое Primary key? 38. Что делает конструкция HAVING? 39. Когда вставленно 5 строчек а @@IDENTITY возвращает 45? 40. Какие есть Join'ы? 54. Зачем нужны функции в MS SQL? Вопросы на эрудицию.24. Есть 6 баночек с таблетками, по шесть таблеток в каждой. В
одной из банок содержится яд. Таблетки с ядом весят 9 грамм, обычные таблетки
весят 10 грамм. Как определить в какой баночке лежит яд, с помощью весов,
воспользоваться которыми можно только 1 раз(после 1-ого взвешивания они
ломаются).
23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют?MVC - это тройка классов применяемых для постороения графических интерфесов взаимодествия программы с пользователем. Model - это объект приложения, View - его экранное представление. Controller - описывает реакцию интерфейса на управляющие воздействия пользователя. Model, View, Controller в сложных приложениях представляют ирархию классов. Основными отношения в схеме MVC описываются паттернами - наблюдатель, компоновщик и стратегия.
Вопросы на эрудицию.24. Есть 6 баночек с таблетками, по шесть таблеток в каждой. В одной из банок содержится яд. Таблетки с ядом весят 9 грамм, обычные таблетки весят 10 грамм. Как определить в какой баночке лежит яд, с помощью весов, воспользоваться которыми можно только 1 раз(после 1-ого взвешивания они ломаются).Надо расположить баночки в произвольном порядке. Из 1-ой баночки взять 1 таблетку, из 2-ой 2, из 3-ей - 3, из 4-ой - 4, из 5-ой - 5, из 6-ой - 6. И взвесить все эти таблетки предварительно отметив(маркером к примеру), из какой банки какие таблетки были взяты. Если общий вес закончится на число 9 - то 1-ая баночка с ядом, 8 - 2-ая, 7 - 3-ая, 6 - 4-ая, 5- 5-ая, 4 - 6-ая. 25. В узлах клетчатой плоскости отмечено 5 точек. Доказать, что есть две из них, середина отрезка между которыми тоже попадает в узел.Введем систему координат на плоскости, так чтобы оси шли по линиям клеток, а
начало координат было в любом узле. Тогда координаты любого узла имеют вид
(a,b), где a и b -целые числа. Заметим, что середина отрезка с концами в точках
(a,b) и (c,d) имеет вид ((a+c):2;(b+d):2). Четные числа обозначим буквой Ч, а
нечетные числа - Н, тогда для обозначения узла у нас есть четыре возможности
(Ч,Ч), (Ч,Н, (Н,Ч), (Н,Н). Так как точек 5, то есть, по крайней мере, два узла
имеют одинаковый вид (принцип Дирихле) - они то и будут искомыми.
Вопросы по С#.26. Какие функции никогда не могут быть виртуальными?Статические и закрытые (private). Так же можно запретить дальнейшее перекрытие виртуального метода перекрыв его с модификатором sealed (sealed override public void F() {}) 27. Что такое компьютерная программа?Компьютерная программа - это описание алгоритма и структуры данных. 28. Последователдьность событий при загрузке HTML страници на клиенте и что на каждом событии делается?Application_Start Session_Start ---------------- События Web-формы: Page_Init Page_Load Page_PreRender Page_Unload Page_Error Page_AbortTransaction Page_CommitTransaction Page_DataBinding Page_Disposed ---------------- Session_End Application_End
Page_Init - Загрузка и инициализация серверных элементов управления 29. Почему класс String sealed?Типа String – тесно интегрирован с CLR, что повышает эффективность работы со строками. Поэтому, чтобы не нарушить связь CLR и String он обьявлен как sealed. 30. Чем отличаются HttpHandler и HttpModule?
HttpModule - глобальный обработчик запросов ко всем страницам приложения, с
помощью которого можно "вклиниваться" в различные этапы обработки запроса.
Например, при необходимости выполнять установку некоторых параметров. Важной
особенностью HttpModule является то, что во время выполнения приложения
существует только один экземпляр класса каждого модуля.
31. Что такое маршалинг?Маршалинг - это механизм, который позволяет клиенту в одном процессе вызывать методы объектов в другом процессе. 32. Что такое сериализация?Сериализация — способ перевода какой-либо структуры данных в последовательность битов. 33. Как в dataset накладывать различные ограничения?В классе DataSet существует коллекция DataRelationCollection Relations, в которую можно добавлять различные отношения между таблицами в объекте DataSet. Так же в DataTable есть коллекция ConstraintCollection Constraints, туда можно добавлять ограничения ForeignKey и Unique, для реализации которых существуют классы ForeignKeyConstraint и UniqueConstraint. PrimaryKey назначается путём добавления сответсвущих столбцов в массив DataColumn[] PrimaryKey класса DataTable. 34. Чем коллекции отличаются от массивов?Массив - это частный случай коллекции с возможностью доступа к элементу по индексу. Коллекция - это набор объектов, доступ к которым осуществляется путём последовательной обработки каждого элемента. Массивы реализовывают интерфейс IEnumerable и ICollection. Интерфейсы IEnumerable и ICollection содержат необходимые методы для такого доступа. 35. Что такое COM+ и зачем он нужен?COM+ - это расширение использования COM от рабочего стола и локальных сетей до всего предприятия, включая Интернет. Технологии входящие в COM+ - Очередь сообщений Microsoft (Microsoft Message Queue, MQMS), Сервер транзакций Microsoft (Microsoft Transaction Server, MTS), Распределенная модель компонентных объектов (Distributed Component Object Model, DCOM), Queued Components и т.д.. 41. Что такое delegate, MulticastDelegate и Delegate?Делегаты предназначенны для ситуаций, когда требуется передать методы другим методам в качестве параметров. В основном используют в следующих случаях: Запуск потоков, Общие библиотечные классы, События. Изначально разработали 2 типа делегатов: одиночные(single-cast) и множественные (multicast). Множественные можно обьеденять в цепочки, одиночные нет. Класс MulticastDelegate (реализация multicast делегатов) наследник класса Delegate (реализация самого делегата). Возможно их обьединят в будущем, так как любой делегат это экземпляр класса MulticastDelegate. 42. Protected internal - это и protected и internal или либо protected либо internal?Модификаторы protected internal означают, что доступ ограничен пределами данного проекта (internal) или классов, производных от данного класса. Т.е. PROTECTED or INTERNAL(не пересечение, а расширение). 43. Могут ли в интерфейсе быть обьявленны event'ы?Могут. Любой event раскладывается компилятором в 2 метода и одно закрытое поле делегата. И несмотря на это закрытое поле компилятор не выдаёт ошибки, когда в интерфейсе обьявлен event. public event MailMsgEventHandler MailMsg; Компилятор транслирует в следующее: private MailMsgEventHandler MailMsg = null; [MethodImplAttribute(MethodImplOptions.Synchronized)] public virtual void add_MailMsg(MailMsgEventHandler handler) { MailMsg = (MailMsgEventHandler) Delegate.Combine(MailMsg, handler); } [MethodImplAttribute(MethodImplOptions.Synchronized)] public virtual void remove_MailMsg(MailMsgEventHandler handler) { MailMsg = (MailMsgEventHandler) Delegate.Remove(MailMsg, handler); } 44. Напишите функцию обхода произвольного дерева?Проще всего применить рекурсию: ArrayList find(Node curNode) { MArrayList retVal = new ArrayList(); ... foreach(Node selNode in curNode.NodeList) { ... retVal.Add(selNode); AddRange(find(selNode), retVal); ... } ... } 45. Методы-аксессоры add/remove.Add/remove используются в событиях. Позволяют соответсвенно добавлять и удалять делегат к связанному списку делегатов события. 46. Домены и процессы, для чего нужны и как взаимодействуют?
В современных операционных системах некий функционально законченный блок кода выполняется в специально отведенном для него адресном пространстве – процессе. Код, выполняемый внутри процесса, изолирован. Доступ к коду из другого процесса возможен только через прокси. Прокси находится в адресном пространстве вызывающего процесса и действует как заместитель удаленного объекта. С точки зрения вызывающего объекта прокси – это объект, перенаправляющий вызовы другому процессу.
47. Что такое Lazy Initialization?Загрузка по требованию - процесс загрузки необходимых данные только тогда, когда они действительно понадобятся. Существует четыре основных способа реализации загрузки по требованию: инициализация по требованию, виртуальный прокси-объект, диспетчер значения и фиктивный объект. Инициализация по требованию (lazy initialization)Основная идея данного подхода заключается в том, что при каждой попытке доступа к полю выполняется проверка, не содержит ли оно значение NULL. Если поле содержит NULL, метод доступа загружает значение поля и лишь затем его возвращает. Использовать значение NULL в качестве признака незагруженного поля очень удобно. Исключение составляют лишь те ситуации, когда NULL является допустимым значением загруженного поля. В этом случае необходимо выбрать какой-нибудь другой признак того, что поле не загружено.Виртуальный прокси-объект (virtual proxy)Имитирует объект, являющийся значением поля, однако в действительности ничего в себе не содержит. В этом случае загрузка реального объекта будет выполнена только тогда, когда будет вызван один из методов виртуального прокси-объекта.Диспетчер значенияЭто объект, который выполняет роль оболочки для какого-нибудь другого объекта. Чтобы добраться к значению базового объекта, необходимо обратиться за ним к диспетчеру значения. При первом обращении диспетчер значения извлекает необходимую информацию из базы данных.Фиктивный объект (ghost)Это реальный объект с неполным состоянием. Когда подобный объект загружается из базы данных, он содержит только свой идентификатор. При первой же попытке доступа к одному из его полей объект загружает значения всех остальных полей.48. Что такое Abstract Factory?Абстрактная фабрика - это паттерн проектирования. Предоставляет интерфейс для создания целых семейств объектов без указания конкретных классов. Объекты каждого семейства должны быть логически связаны между собой. Функционал у всех семейств схожий но сами семейства разные в рамках использования этих семейств в приложении. 49.Что такое WSDL?WSDL - это XML-ориентированный язык, предназначенный для определения web-сервисов и доступа к ним. 50.Каков размер типа int в С#?int - это System.Int32. Знаковое 32-битное целое. 51.Как обьявляют двумерный массив в С#?C# поддерживает многомерные массивы двух видов. Первый вид - прямоугольные массивы. Двумерный прямоугольный массив - это массив в каждой строке которых одинаковое число столбцов. Он инициализируется так: string [,] (двумерный массив строк). Второй вид - неровные массивы. Каждый ряд неровного двумерного массива может содержать различное число столбцов. При создании нервных массивов на самом деле формируется массив массивов. 52.Какой проверить открыта коннекция к базе или закрыта?Свойство State класса SQLConnection или OleDbConnection позвзоляют проверить это. Они вернут значение из перечисления типа ConnectionState. 53.Как выбрать все теги с одинаковым именем, не зависимо от их положения в иерархии?
Имеется ввиду XPath expressions. Чтобы все теги выбрать надо написать //имя_тега.
55. UML диаграммы.
Диаграмма классов, Class diagram — статическая структурная диаграмма, описывающая структуру системы, она демонстрирует классы системы, их атрибуты и зависимости между классами.
56. Что такое preceding-sibling?XSLT: Preceding-sibling содержит всех предыдущих братьев контекстного узла. 57. Чем отличается visibility:hidden от display:none?Видимость слоя (visibility) MSIE, Opera, Mozilla - .visibility="visible"/"hidden" (видимый/невидимый) Netscape 4 - .visibility="show"/"hide" (show/hide требуют только самые первые версии Netscape 4, более новые понимают и visible/hidden) Кроме видимости, в CSS есть еще "отображаемость" - display. От visibility он отличается тем, что невидимый (visibility="hidden") слой продолжает занимать место, а неотображаемый (display="none") места не занимает, словно его просто нету. В Netscape 4 динамически (т. е. скриптом) менять display нельзя. 58. Какова максимальная длина строки запроса?Microsoft Internet Explorer: Начиная с четвертой версии браузера, максимальная длина воспринимаемого URL составляет 2,083 символов. При этом длина GET-запроса лимитирована 2,048 символа. На POST никаких ограничений не накладывается. Firefox: В старых версиях (1.5.x) было ограничение на 64 килобайта, но, вполне возможно, это был баг, который позже исправили. Теперь, по всей видимости, ограничения на длину URL снято вообще, либо оно существенно превышает «пределы разумного» (проверено, что Firefox может «съесть» URL длиной в 100,000 символов). Safari: Лимита на длину URL нет так же, как и в Firefox. Автор FAQ успешно протестировал адрес длиной 80,000 символов. Opera: По заявлению разработчиков, лимита нет. Успешно прошли тесты с 190,000 символами. 59. Чем Get запрос отличается от Post запроса?Данные в методе GET передаются через HTTP-заголовки, а конкретно в адресе, а при передаче методом POST данные передаются через тело запроса. 60. Назовите методы aутентификации в .Net?
1.WINDOWS AUTHENTICATION 61. Обьясните 2 технологии ASP.NET используемые для отслеживания сессии?
Пользовательская сессия здесь - это доступ пользователя к своим ресурсам на сервере. Зная уникальный идентификатор сессии пользователь гарантированно может обращаться к своим данным на сервере не теряя сессию. Передавать этот идентифиактор можно 2-мя способами: 62. В чем разница между Server.Transfer и Response.Redirect?
Response.Redirect отправляет ответ браузеру, а Server.Transfer просто начинает обрабатывать другую страницу в рамках того же запроса. 63. Какие есть способы управления состоянием сессии в ASP.NET?
1.In Process 64. Зачем нужна функция GetHashCode?Хэш-код — это числовое значение, используемое для идентификации объекта во время проверки равенства. Он также может служить индексом для объекта в коллекции. Хэш-функция используется для быстрого создания числа (хэш-кода), соответствующего значению объекта. Обычно каждому объекту Type соответствует своя хэш-функция, у которой в качестве входного аргумента должно использоваться хотя бы одно из полей экземпляра. Хэш-функции должны обладать следующими свойствами:
65. Чем Delegate от Event'a отличается?1. Событие нельзя запустить вне класса, в котором оно было объявлено 2. События могут быть помещены в интерфейс. 3. И событие и делегат можно объявить полем класса, но в отличие от делегата, событие не может быть локальной переменной метода 66. Что такое Inversion of Control?Это вопрос на знание SOLID. SOLID это аббревиатура пяти основных принципов дизайна классов в объектно-ориентированном проектировании. S-(Single responsibility principle или Принцип единственности ответственности) - На каждый объект должна быть возложена одна единственная ответственность. O-(Open/closed principle или Принцип открытости/закрытости) - Программные сущности … должны быть открыты для расширения, но закрыты для изменения. L-(Liskov substitution principle или Принцип подстановки Лисков) - Объекты в программе могут быть заменены их наследниками без изменения свойств программы. I-(Interface segregation principle или Принцип изоляции интерфейса) - Много специализированных интерфейсов лучше, чем один универсальный. D-(Dependency inversion principle или Принцип инверсии зависимостей или Inversion of Control) - Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций. Вопросы по SQL server:36. Что такое хранимые процедуы? Назовите их достоинства и недостатки.Хранимая процедура - это группа операторов SQL, которая компилируется один раз и после этого может выполняться многократно. Компиляция происходит при первом исполнении хранимой процедуры. Достоинства: Производительность. Повышение безопасности посредством изоляции и шифрования. Недостатки: Совмещение данных и кода работающего с ними в базе данных. 37. Что такое Primary key?Первичный ключ - это столбец или комбинация столбцов, значения которых ун
|
Категория «Художники»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.