Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 ADO.NET JavaScript LINQ AjaxPro DataGridView 面向对象 Extjs GridView XML DevExpress HTML教程 Oracle jQuery 分页 GDI+ Visual C++2010 MySQL Office2010 WPF MVC Dojo WCF4.0 VB.NET Sql2005 textbox cookie WCF WinForm Discuz!NT SQL经典语句 T-SQL checkbox ASPxGridView F# asp.net SQL VS2008新特性 DropDownList Access TreeView Ajax VS2008 页面执行时间 Flex 字符串 回调 VB2005 DataSet C#时间 ASP.NET性能优化 用户在线检测 动画
新闻动态面试题及技巧

C#常见问题及中等程序员面试常见题

时间:2010-04-25 09:51来源:未知 作者:admin 点击:

1 Thread和Process之间有什么区别?.NET新引入了Application Domain的概念,这样他们三个之间有什么区别?引入了Application Domain会带来一些潜在的问题么?
进程可以理解为一个容器,提供进程空间,线程所使用的内存都在进程空间中分配。每个线程有自己的堆栈。APPDomain相当于一个逻辑概念,相当于在进程中逻辑的划分了一些区域,所以线程是可以跨域访问另外的线程。

2 Windows Service与普通的EXE在执行过程中有什么区别?
一般前者无界面,有windows的Service服务器负责维护启动和关闭。Exe由用户维护且一般有界面。

3 一个进程可以访问的Windows地址空间有多大?等于系统的虚拟内存大小么?这两方面将对系统的设计产生什么样的影响?
a.跟数据总线有关系。一般32位操作系统,寻址空间可以达到4GB,所以一个进程可以访问的地址也为4GB(不过实际上,有2GB是留给操作系统使用的,4M是不可访问的,剩下的空间才供进程使用)。
b.不等于虚拟内存。
c.寻址空间和数据总线的宽度有关系。虚拟内存会消耗CPU处理时间。因为需要做内外存的转换工作。

4 EXE和DLL之间的区别是什么?在系统设计中应该如何选择使用它们?
a..Exe有自己的进程空间,dll没有,dll只能被引用后,和exe共享进程空间才能被调用和运行(其实还有rundll32命令可以启动dll,该系统命令本质上就是为其提供进程空间)。
b.dll也叫动态链接库,可以将反复使用的共有代码和资源放在动态链接库中,这样在内存中只会有一个副本,节约内存空间(不同的进程根据不同的重定位信息可以定位到制定的dll中)。

5 普通的EXE与.NET EXE的执行过程有什么不同?
普通exe可以直接在操作系统上执行,但是.net exe需要jit的及时编译,并在托管环境下(即CLR的控制下)运行

6 什么是弱类型,什么是强类型?在系统设计中应该首先考虑使用哪种类型?
弱类型在一定程度上允许不同类型的数据进行相互操作和运算,但是强类型不允许,因为强类型会做类型检查工作。

7 PDB文件是作什么用的?里面包含了什么信息?
程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。

8 Cyclomatic Complexity是什么?为什么它很重要?
圈复杂度,用于衡量程序的分支数量。一个正常的方法,分值应该控制在5,6个,如果分支数太大,则最好进行方法的分解,避免badsmell.

9 为创建一个critical section以访问某个变量书写一个标准的lock() 并加上double check。
If(m_Instance!=null)
{
lock(this)
{
if(m_Instance!=null))
{
//do something
}
}
}

10 为某个对象实现标准的Dispose模式。
Class MyObject:Idisposable
{
public void Dispose()
{
//do something
}
}
就是实现Idisposable接口,进而实现自定的析构

11 什么是FullTrust? 存在于GAC中的 assembly 拥有FullTrust么?
不知道

12 下面这个命令是做什么的?gacutil /l | find /i “system”
全局程序集缓存工具使您可以查看和操作全局程序集缓存和下载缓存的内容。

13 下面这个命令是作什么的? sn -t something.dll
Sn.exe 提供用于密钥管理、签名生成和签名验证的选项。

14 跨防火墙的 DCOM必须打开哪个端口?端口135是用来做什么的?

15 有什么办法可以与现有unmanaged code集成?在集成的时候应该考虑什么问题?

16 简要解释一下OOP与SOA都是用来作什么的?
OOP是一种程序编程架构,包含几个特征:组件,封装,继承,抽象,多态。
SOA叫面向服务架构。

17 XmlSerializer是如何工作的?进程运行XmlSerializer时候需要什么样的ACL权限?
ACL访问控制列表。

18 在系统设计时,何时应该使用try catch?何时需要避免使用?

19 Debug.Write()和Trace.Write()之间有什么区别?二者分别应该用于何处?
都是断言。Debug.Write()为调试版本,在发行版本里面不会被执行,而Trace.Write在发行版本中会被执行。

20 Debug Build和Release Build有什么区别?在执行效率上有什么明显的区别么?
Debug build的版本包含了一些调试信息,执行效率会低一些。

21 JIT是针对Assembly还是Method发生的?解释一下为什么.NET的设计者要这样做?

22 简要描述一下GC的执行过程。
当内存减少到某个程度之后,CLR启动垃圾回收,将那些不被引用的对象回收并释放所占用的内存。

23 应该如何选择使用abstract class还是interface?
抽象类可以有实现,接口无实现。接口可以多继承,抽象类不行。

24 在设计一个自定义类型时应如何选择使用Value Type还是Reference Type?
其实要描述的就是引用类型和值类型的区别。可以从内存分布和访问效率两方面谈。

25 对于Value Type和Reference Type,a.Equals(b)的默认实现方式有什么不同?
值类型默认就是指是否相等。引用类型就是比较两个引用是否指向同一个对象。

26 .NET中为什么不提供默认的deep copy?如果需要,要如何实现deep copy?
因为深度拷贝涉及到拷贝的级数问题,就是需要深度拷贝到什么层次。在C#中,不可以直接覆写MemberwiseClone方法,可以实现Iclone接口来实现自定义的深度拷贝。

27 相对于.NET 1.1,.NET2.0为了避免过度的boxing/unboxing造成的系统开销提供了哪些支持?
范型。

28 String是Value Type还是Reference Type?为什么.NET中的String对象被设置成immutable?
是引用类型。因为字符串对象在操作系统中出现的频率很高,如果为每一个string都分配一个独立的内存,将会是很大的系统开销。所以string 设置为不可变的,就是一种内存驻留技术,本质上就是让同样的字符串都访问同一块内存。比如:s1=”a”,s2=”b”,则s1和s2其实都是指向同一块 为”a”的内存;如果现在修改s1=”b”,则s1将不再指向”a”,而是开辟另一块为”b”的内存空间,使s1指向b(其实如果有另一个s3=”b”, 则s1就会和s3指向同一个”b”,此时s1不再重新开辟空间)。

(责任编辑:admin)
Tags:面试题
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价
  • Asp.net面试题(二)

    01.{DotNet题目}下列变量的赋值,正确的是:( )(选择2项) A )int myInteger=17; B ) string myString = \...

  • 谈谈.Net技术面试

    谈谈.Net技术面试...

  • 一道关于实例化顺序的C#面试题

    一道关于实例化顺序的C#面试题...

  • 上海某软件公司.Net笔试题

    上海某软件公司.Net笔试题...

  • 数据结构若干经典问题和算法

    一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行: (1...

  • 如何写一份好的工程师简历

    最近三年作为 Google(谷歌)的软件工程师,我每周会帮人事部门审查简历,决定要不要给他们面试。Google 这几年的发展让很多许多优秀的工程师都前来申请。到...

  • 面试技巧:16个经典面试问题回答思路

    问题一:请你自我介绍一下 思路: 1、这是面试的必考题目。 2、介绍内容要与个人简历相一致。 3、表述方式上尽量口语化。 4、要切中要害,不谈无关、无用的内容。...

  • 继"一题比较刁的面试题" 后,sliverlight实现

    2009年11月19日来到苏州热线面试(苏州比较大的门户网站) 面试结束后带回去了一个题、 要求: 1.任何语言 任何形式(web,winform,flash,...

  • 一题比较刁的面试题

    昨天晚上看到群里在聊面试题,回想最近几个月的面试经历,很是感慨。 10月底从昆山回到苏州。直到11月底才找到工作,跑到哪都是有没有工作经验,没有。。。好吧,回去...

  • 一份雅虎公司C#笔试题

    Question 1. (单选) 在计算机网络中,表征数据传输可靠性的指标是 1. 传输率 2. 误码率 3. 信息容量 4. 频带利用率 Question 2...

  • C#常见问题及中等程序员面试常见题

    1 Thread和Process之间有什么区别?.NET新引入了Application Domain的概念,这样他们三个之间有什么区别?引入了Applicati...

  • .NET面试题整理-数据库篇

    1、索引 好处: (1)提高查询表内数据的速度。(2)表与表之间的连接速度加快。 坏处: (1)创建索引和维护索引都会消耗时间。(2)会占用一定物理空间,占用物...

  • .NET面试题总结一

    1:关于ASP.NET中的代码隐藏文件的描述正确的是: C A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文...

  • 2010年.NET面试题整理之基础篇

    1、什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一...

  • 某外企SQL Server面試題

    Question 1:Can you use a batch SQL or store procedure to calculating the Number ...