候才进行编译,而 NGEN 是所谓的 pre-jit,就是说在运行前事先就将生成程序集的本机镜像,并保存到 全局缓存中,适用 NGEN 可以提高程序集的加载和执行速度,因为它可以从本 机映像中还原数代码和数据结构,而不必像 jit 那样动态生成它们.感觉和缓存 的道理大同小异. 14) Finalize()和 Dispose()之间的区别 和 之间的区别? 之间的区别 Finalize()用于隐式释放资源,Dispose()用于显示释放资源 (Finalize() 的确
相当于 C++中的析构函数(多谢 Jeffrey Zhao 提示更正) 15) using() 语法有用吗?什么是 IDisposable?它是如何实现确定性终 语法有用吗? ? 结的. 结的 有用,实现了 IDisposiable 的类在 using 中创建,using 结束后会自定调用该 对象的 Dispose 方法,释放资源.不明白什么是确定性终结
16) tasklist /m "mscor*" 这句命令是干嘛的 这句命令是干嘛的? 列出所有使用了以" mscor"作为开头的 dll 或者 exe 的进程和模块信息 17) in-proc 和 out-of-proc 的区别 in-proc 是进程内,进程内能共享代码和数据块,out-of-proc 是进程外,进程 外的互操作需要用进程间通讯来实现. 18) .NET 里的哪一项技术能够实现 out-of-proc 通讯? 通讯? .Net Remoting 技术或者 WCF 技术 19) ASP.NET 在 Windows XP, Windows 2000, Windows 2003 上 分别跑在哪个进程里面? 分别跑在哪个进程里面? Xp : aspnet_Wp.exe Windows 2000 : aspnet_Wp.exe (多谢 Tristan 提示更正) Windows 2003 : w3wp.exe
此文中所提到的面试题是园子中 Tony Qu 兄弟翻译 过来的,特此感谢
上一篇: 对一些面试题的回答
高级开发人员/架构师
1) DateTime.Parse(myString); 这行代码有什么问题? ) 这行代码有什么问题? 有问题,当 myString 不能满足时间格式要求的时候,会引发异常,建议使用 DateTime.TryParse() ,同时, 还需要注意到文化区域的设置, 如果做代码规范检 查,该语句也会不符合规范,就是因为缺少文化区域的设置
2) PDB 是什么东西 在调试中它应该放在哪里? ) 是什么东西? 在调试中它应该放在哪里 哪里? PDB 是用于保存调试和项目状态信息的文件,在 debug 的时候将产生 pdb 文件,调试的时候应该放在和对应应用程序集相同目录. 默认的是 同一目录,ide 还可以设置全局 pdb symbol 文件的地址,这也是 vs2008 能调试.net framework source code 的方法. 还可以为解决
方案指定 pdb 位置 3) 什么叫圈复杂度(cyclomatic complexity)?为什么它很重要? ) 什么叫圈复杂度( )?为什么它很重要 )?为什么它很重要? 一种代码复杂度的衡量标准,中文名称叫做圈复杂度.在
软件测试的概念 里,圈复杂度"用来衡量一个模块判定结构的复杂程度,数量上表现为独 立现行路径条数,即合理的预防错误所需测试的最少路径条数,圈复杂度 大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错 误和高的圈复杂度有着很大关系". 4) 写一个标准的 lock(),在访问变量的前后创建临界区,要有 双重检查 ) 双重检查" ,在访问变量的前后创建临界区,要有"双重检查 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class Singleton{ private static Singleton _instance; private Singleton() { } public static Singleton GetInstance() { if (_instance == null) { lock (typeof(Singleton)) { if (_instance == null) { _instance = new Singleton(); } } } r
eturn _instance; } }
5) 什么叫 FullTrust?放入 GAC 的 assembly 是否是 FullTrust 的? ) ? FullTrust 完全信任. 放入 GAC 中的 Assembly 是否 FullTrust 我的理解不 是.我理解 FullTrust 是可以通过代码设定的 6) 代码加上需要安全权限的特性有什么好处? ) 代码加上需要安全权限的特性有什么好处? 可以更加灵活的设置对代码的访问权限,实现代码级保护.?这点不是特 清楚,有明白的给讲解下 7) gacutil /l | find /i "Corillian" 这句命令的作用是什么? ) 这句命令的作用是什么? 全局程序集缓存中如果有