我在面试.NET/C#程序员时会提出的问题(转载)

转自:http://blog.zhaojie.me/2011/03/my-interview-questions-for-dotnet-programmers.html

说起来我也面试过相当数量的.NET(包括C#,后文不重复)程序员了,有的通过电话,有的面谈。后来发现,其实提的问题来来回回也就那么几个。这些问题有的已经有十年历史了,至少也有三年。我想对于一个“不错”的.NET程序员来说,在简单的提示下绝大部分问题应该可以“对答如流”。可能您也会觉得这些太细节,真要追究起来似乎也大都不是必须的,无视这些照样可以写程序,做网站,赚工资,但是我不会满足于成为(包括招聘)这样的程序员,暂时也懒得解释掌握这些东西的益处和重要性。 每个人都有自己的看法, 一切就看您自己的选择了。

那么现在就开始吧。

  • 什么是.NET?什么是CLI?什么是CLR?IL是什么?JIT是什么,它是如何工作的?GC是什么,简述一下GC的工作方式?
  • 类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构?
  • 在.NET程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上分配数据?它们有性能上的区别吗?“结构”对象可能分配在堆上吗?什么情况下会发生,有什么需要注意的吗?
  • 泛型的作用是什么?它有什么优势?它对性能有影响吗?它在执行时的行为是什么?.NET BCL中有哪些泛型类型?举例说明平时编程中您定义的泛型类型。
  • 异常的作用是什么?.NET BCL中有哪些常见的异常?在代码中您是如何捕获/处理异常的?在“catch (ex)”中,“throw”和“throw ex”有什么区别?您会如何设计异常的结构,什么情况下您会抛出异常?
  • List<T>和T[]的区别是什么,平时你如何进行选择?Dictionary<TKey, TValue>是做什么的?.NET BCL中还有哪些常用的容器?它们分别是如何实现的(哪种数据结构)?分别是适用于哪些场景?
  • 抽象类和接口有什么区别?使用时有什么需要注意的吗?如何选择是定义一个“完全抽象”的抽象类,还是接口?什么是接口的“显式实现”?为什么说它很重要?
  • 字符串是引用类型类型还是结构类型?它和普通的引用类型相比有什么特别的地方吗?使用字符串时有什么需要注意的地方?为什么说StringBuilder比较高效?在连接多个字符串时,它无论何时都比直接相加更高效吗?
  • 如何高效地进行数组复制?“二维数组”和“数组的数组”有什么区别?在使用双重循环遍历一个二维数组时,如何选择内外层的遍历顺序?
  • 什么是元编程,.NET有哪些元编程的手段和场景?什么是反射?能否举一些反射的常用场景?有人说反射性能较差,您怎么看待这个问题?有什么办法可以提高反射的性能吗?
  • 委托是什么?匿名方法是什么?在C# 3.0中,Lambda表达式是什么?扩展方法是什么?LINQ是什么?您觉得C# 3.0中还有哪些重要的特性,它们带来了什么优势?BCL中哪些类库和这些特性有关?您平时最常用哪些?
  • 工作之外您看哪些技术相关的书、网站、社区、项目等等?您还接触哪些.NET以外的技术,能和.NET或.NET中有针对性的部分做个对比吗?

以上便是暂时想到的问题,以后有需要再做补充──当然,不提供答案,一是写出来太累了,二是这些东西往往也没有完全标准的答案。您一定发现了,这些问题其实都是和.NET基础相关,与某个特定的框架或是类库并没有多大关系。在实际面试时,如果是Web开发人员,我一定还会考察对方对ASP.NET及Web基础(更主要是协议和理念相关,而不是HTML,JS,CSS编程)的了解,某些情况下还会有关于多线程、并发的知识点。其他可能还会有一些例如软件开发、设计、实现等实践方面的问题。更重要的是,我一定会需要您在白板上当场写代码来解决一个小问题。不难,也不会直接要求写某个经典算法,事实上甚至是“交换元素”这种简单到近乎毫无意义的问题,只可惜这类题目也能筛掉八成以上的人。

我并不担心大家知道这些问题,而且我可以表示以后的面试估计也逃不开这些。如果您有某些意向,做些针对性的准备可能也是不错的。当然,既然是面试,就会有“随机应变”,你我都一样。我有自信可以在不断追问下发现到底是“真材实料”还是“临时抱佛脚”。

您觉得还有哪些问题值得补充呢?

时间: 2024-08-25 10:09:25

我在面试.NET/C#程序员时会提出的问题(转载)的相关文章

[转]我在面试.NET/C#程序员时会提出的问题

http://blog.zhaojie.me/2011/03/my-interview-questions-for-dotnet-programmers.html 说起来我也面试过相当数量的.NET(包括C#,后文不重复)程序员了,有的通过电话,有的面谈.后来发现,其实提的问题来来回回也就那么几个.这些问题有的已经有十年历史了,至少也有三年.我想对于一个“不错”的.NET程序员来说,在简单的提示下绝大部分问题应该可以“对答如流”.可能您也会觉得这些太细节,真要追究起来似乎也大都不是必须的,无视这

程序员必看书籍(转载)

程序员必看书籍(转载) C++: Prata<C++ Primer Plus>:基础,第一本书.(之前的版本也可,不过推荐最新的) Lippman<Inside C++ Object Model>:初级,加深语言层次上的理解.不过有点小老了.里面的cfront编译器早退出江湖好久了.思想值得学习 侯捷<STL源码剖析>:第三本书,中级,深入STL Vandevoorde<C++ Template>:第四本,中级,范式编程 罗剑锋<Boost>两本

给年后面试的Android程序员的一些面试建议

前言 今天写一篇关于Android面试相关的博客,需要说明的是本文只针对Android应用开发,不针对rom开发以及逆向工程.我想面试对于程序员来说是很重要的一件事件,面试结果的好坏直接决定了能否进入某个公司以及以什么级别和待遇进入某个公司.我参加面试的经验并不多,但是以面试官的身份面试别人倒是有很多次,所以我可以结合这些经验来介绍下如何更好地把握一个面试. 什么是合适的候选者 在介绍如何面试之前,这里先从公司的角度来分析:"到底什么样的候选者是公司所需要的技术人才?"就我在百度的一些

C/C++程序员应聘试题剖析(转载)

转载自:http://www.cnitblog.com/zouzheng/articles/21856.html 1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵.文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见. 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答.企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的str

&quot;菜鸟&quot;与大神程序员之间的差别(转载)

前段时间看到一篇文章,写得很好,针对菜鸟与大神之间的差别做了很客观.很透彻的分析,现在将文章转载过来,原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=239356&highlight=%E8%8F%9C%E9%B8%9F “菜鸟”和“大神” 刚刚走出就业的程序员,技术是刚刚起步的基点.那下面我们就聊一聊有关技术 的东西.首先请您先想想这几个问题.现在社会上有很多程序员,CSDN就是我们程序员的家,那您是否可想过程序员为什么会有

程序员须知的网站(转载)

1 csdn http://www.csdn.net/  2 Vc知识库 http://www.vckbase.com/  3 codeproject http://www.codeproject.com/  4 软件开发方案网 htpp://www.fanganwang.com  5 程序员联合开发网 http://www.pudn.com/  6 看雪学院 http://www.pediy.com/  7 蓝色理想 http://www.blueidea.com/  8 博客园 http:/

面试:java程序员(5.6)

早上还在穿衣服的时候接到了面试电话,面试官问了几个问题,我感觉都答得不顺,感觉准备的太不充分了,有种我写了一年的java但是什么都不知道的感觉.觉得自己真心好low,连多线程都没办法完整的回答,居然卡壳了.脑子里都是浆糊么~sad.1.你对swing有了解吗?它下面有哪些常用包能说明下吗? 2.collection有哪些,比如说list?list有哪些具体的实现类?ArrayList是线程安全的吗?如果线程不安全,要怎么规避? 3.多线程的实现有哪几种写法? 4.j2ee有了解吗?数据库学的怎么

想进BAT面试的Java程序员 看完这个你们还觉得offer很难拿吗???

阿里面试问些什么? 参加阿里的社招面试,而社招不同于校招,问题的范围其实是很随机的.因为能参加一些比较知名的互联网公司社招的人,70%以上都会有个3-5年的经验.这倒不是说一两年经验的同学没有机会进这些公司,而是因为这种公司,大部分情况下只招一些比较资深的开发和应届生,而不招那些处于中间阶段的人.而1-2年经验的同学,往往就刚好处于这个尴尬的阶段. 对于能有3-5年经验的这部分人中,每个人的经历又都不同,所擅长的点也不一样,因此这就会导致每个人的问题和范围都不太一样. 很少说有哪个知名的互联网公

十大面试问题解惑,秒杀一切HR、技术面试。iOS程序员必读!

前言: 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余.小编收集了10个面试官最爱提的问题,虽然题目千变万化,但是万变不离其宗,只要掌握了答题的技巧,了解面试官的出题思路,再难的题目也会迎刃而解. 1. 请介绍一下你自己 这是面试官100%会问的问题,一般人回答这个问题过于平常,只说姓名.年龄.爱好.所学专业等,如果你用一分钟来重复你的简历,那么,你的印象加分没有了! 作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的