`
king_tt
  • 浏览: 2246734 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

《.NET程序员面试指南》 - 书摘精要

    博客分类:
  • .net
阅读更多

(P12) 应聘者应该避免那些拥有不适合自己的公司文化的企业,不适合的文化环境将很大程度地阻碍员工的职业发展;

 

(P20) 笔试题一定要仔细考虑,用最简单的语言说出考题的答案,不要写太多,越多说明能力越欠缺;

 

(P23) 公共语言规范 (CLS) 是 CTS 的一个子集, 它定义了希望缩写在 .NET 平台上运行的程序的语言所需符合的最小规范;

 

(P24)

公共语言运行库 (CLR) 是一个 CLI 的实现,包含了 .NET 运行引擎和符合 CLI 的类库;

 

通用类型系统 (CTS) 包含在微软公司提交的 CLI 规范中,定义了一个可以在 CLR 上运行的类型规范;

 

(P23) 公共语言基础 (CLI) 是微软公司向 ECMA 提交的一份语言和数据格式规范,CLR 是目前唯一一个公共语言基础的实现版本;

 

(P28)

程序集 (Accembly) 是一个或多个模块和资源文件的集合。当一个程序集被打包形成时,它不仅会包含所有的原始文件内容,也会添加一个程序集清单,该清单包含了程序集的版本号、语言、发布者、导入类型等信息;

 

包含了程序清单的那个文件对使用该程序集来说是必需的;

 

(P29) 在多个应用程序域间通信是非常困难的;

 

(P31) 在 CLR 运行程序集的时候,根据需要会对 IL 代码进行第二次编译,这个过程被称为实时编译 (JIT);

 

(P37) CLR 支持在3个级别上设定版本策略,依次是:应用程序策略、发行者策略和计算机策略。所有策略的设置都是通过修改配置文件来实现;

 

(P38) 现在常用的非对称算法有 RSA 算法 和 DSA 算法;

 

(P40) 只有带有公钥的强签名程序集才能被部署到 GAC 中去;

 

(P46) System.ValueType 已经实现了类型内容的比较,所以所有值类型的比较都是内容比较而非引用比较,由于值类型的特点,所有值类型的引用比较都将返回 false ;

 

(P47)

System.Object 的 ToString()方法的实现,事实上就是利用了 GetType()方法;

 

笔者建议在大多数情况下都不要重写 GetHashCode()方法,除非自信能够提供准确而更高效的 GetHashCode()算法;

 

(P49) 堆栈的空间相对有限,但运行效率却比堆高得多;

 

(P51) 引用类型对象拥有的成员:类型对象指针和同步块引用;

 

(P52) 对于堆上空间的操作,速度相对于堆栈的操作慢得多,并且可能引发垃圾回收,这些都将大规模地影响系统的性能;

 

(P53) 装想和拆箱本质上是值类型在转换到 System.Object 时引发的堆栈和堆的一系列移动操作。装箱时值类型从堆栈上被复制到堆上,而拆箱时从堆上复制到堆栈上;

 

(P55) 类型初始化器不同于构造方法,初始化器不能被显式地调用,并且每个类型只能有一个类型初始化器;

 

(P57) 类型的初始化器是指具有和类型相同名字,无参数、无返回并且以 static 定义的方法;

 

(P59) “out”关键字不关心参数在传入前是否被初始化,但要求参数在返回前被初始化;

 

(P61) C# 中不同类型成员的默认可访问性级别:

1.

类型: enum

C#中默认的可访问性级别: public

可设置的可访问性级别: 不可设置

 

2.类型: class

C#中默认的可访问性级别: private

可设置的可访问性级别: public、 protected、 internal、 private、 internal proteccted

 

3.

类型: interface

C#中默认的可访问性级别: public

可设置的可访问性级别: 不可设置

 

4.

类型: struct

C#中默认的可访问性级别: private

可设置的可访问性级别: public、 internal、 private

 

(P63) .NET设计团队添加属性的本意并非代替方法,而是代替暴露的内部成员;

 

(P67) 一般可被继承的类型应该避免实现 ICloneable 接口,因为这样做将强制所有的子类型都需要实现 ICloneable 接口,否则将使类型的深复制不能覆盖子类的新成员;

 

(P70)

当 using 可以被使用时,笔者建议读者尽量使用 using 语句。至今为止,笔者发现它带给程序的只有优点,而没有任何弊端;

 

任何带有非托管资源的类型,都有必要实现 IDisposable 的 Dispose()方法,并且在使用完这些类型后需要手动的调用对象的 Dispose 方法来释放对象中的非托管资源;

 

(P80) 根据 .NET 的垃圾回收机制,0代、1代和2代的初始分配空间分别为 256KB、2MB 和 10MB;

 

(P84) .NET 托管堆内可能出现严重内存泄漏现象,主要产生原因有:大对象的频繁分配和释放,不恰当地保留引用和错误的 Finalize()方法;

 

(P102) 一旦 StringBuilder 的 ToString()方法被调用后,最终的字符串就被生成,而随后的操作将导致一个新的字符串对象生成;

 

(P106) Convert 类型在转换失败时将直接抛出异常,读者在任何时刻都必须把 Convert 类型的操作语句放入 try catch 块中;

 

(P109) 字符串池机制致力于改善程序的性能。 CLR 会保留程序中出现过的字符串对象的集合,并且在需要新的字符串时,先检查已有的集合,在查找成功时返回已有对象的引用。字符串机制可以通过程序集元数据特性进行控制,C# 默认的机制是打开字符串机制;

 

(P113) 带泛型参数的类型同样是一个确定的类型,在不被指定的情况下,它直接继承自 System.Object类型,并且可以派生出其它类型;

 

(P116) Wintellect 团队为 .NET 开发了 STL 类库 Power Collection ,这个类库可以免费获得,.NET 程序员可以并且被鼓励使用标准模板库 (STL);

 

(P121) .NET 提供的 DeflateStream 类型和 GZipStream 类型压缩算法并不出色,并且也不能调整压缩率。有些第三方的组件,例如 SharpZipLib 实现了更搞笑的压缩解压算法;

 

(P123)

当一个基类使用了 Serializable 特性后,并不意味着其所有的子类都能被序列化。事实上,程序员必须为每个子类都添加 Serializable 特性来保证其能被正确的序列化;

 

Serializable 和 NonSerialized 特性在 XmlSerializer 类型对象的操作中完全不起作用,取而代之的是 XmlIgnore 属性;

 

(P123)

使用 XmlSerializer 序列化的对象类型必须显式地拥有一个无参的公共构造方法;

 

XmlSerializer 只能序列化公共成员变量;

 

(P132) 通过运用 ILasm.exe 的 noautoinherit 开关,可以生成不从 System.Object 继承的类型;

 

(P149) FileInfo 和 DirectoryInfo 主要的功能在于操作文件和文件夹在文件系统中的结构,完成诸如创建、复制、读取信息、移动、判断是否存在、删除等功能;

 

(P163) 委托的调用就是执行了在定义委托时所生成的 Invoke 方法;

 

(P164) 当委托绑定静态方法时,内部的对象成员变量 _target 将会被设置成 null ,而当委托绑定实例方法时, _target 将会设置成指向该实例方法所属类型的一个实例对象,当委托被执行时,该对象实例将被用来调用实例方法;

 

(P167) System.Delegate 有两个内部成员: _target 和 _MethodPtr 。System.Multicast.Delegate 继承了这两个成员,并且添加了一个 _prev 成员,该成员是一个委托的引用变量,当某个委托被串联到当前委托的后面时,该成员会被设置指向那个后续委托实例对象;

 

(P179) 事件是一个委托类型,该委托类型的方法无返回值,并且拥有两个参数: object 和 TEventArg。

 

(P216) 每个进程都被单独地隔离,拥有自己地内存块,独占的资源及运行数据,一个进程的崩溃不会影响到其它进程,而进程间的交互也是相当困难的。和进程不同,同一进程内的所有线程共享资源和内存块,并且一个线程可以访问,结束同一进程内的其它线程;

 

(P243) 笔者建议读者使用 lock 关键字,并且永远不要手动使用 Monitor.Enter() 和 Monitor.Exit() 方法;

 

(P245) 应该完全避免使用 this 对象和当前类型对象作为同步对象,而应该在类型中定义私有的同步对象,同时应该使用 block 而不是 Monitor 类型,这样可以有效地减少同步块不被释放的情况;

 

(P248)

1. Mutex 使用的是操作系统的内核对象,而 Monitor 类型的同步机制完全在 .NET 框架中实现;

2. Monitor 类型智能同步同一应用程序域中的线程,而 Mutex 类型却可以跨越应用程序与和进程;

 

(P253)

常用 Http Code :

100 成功,可以继续请求;

101 服务器已更改;

200 请求结束;

201 请求完成,并且新资源被创建;

202 请求被接受,但处理尚未完成。请求可能不一定会最终完成;

204 服务器端已经实现了请求,但是没有返回新的消息;

206 部分 GET 请求完成;

300 存在多个可用资源,不能确定使用哪个资源;

301 请求对象已经被永久移动到新的 URI ;

302 请求对象暂时被移动到新的 URI ;

303 请求资源在另一 URI 上,可以以一个新的 GET 方法请求该 URI 上的资源;

304 如果客户端成功执行了条件 GET 请求,而对应文件自 If - Modified - Since 域所指定的日期以来就没有更新过;

305 所请求的资源必须使用特定代理来访问;

307 请求被暂时地重定向;

400 非法的请求,请求包含非法字符或语句;

401 访问被拒绝,服务器要求客户端提供认证;

402 暂时没有使用,将来可能被用来作为要求支付;

403 服务器理解请求,但是拒绝实现该请求;

404 请求资源没有找到;

405 请求的资源不能通过该 URI 访问;

405 请求的资源无法通过指定的编码和格式返回给请求者;

407 请求的资源需要通过代理访问,并且客户端需要先通过代理认证;

408 服务器等待超时;

409 客户端需要发请求并包含更多信息;

410 所请求资源已经被移除或者无法获得;

411 需要客户端在请求的头中添加合法的内容长度字段;

412 一个或多个定义在请求中的先决条件在服务器测试不成立;

413 请求的资源不大,服务器拒绝;

414 请求 URI 过长;

415 请求的媒体类型不被请求支持;

500 服务器端出错;

501 服务器不支持该请求;

502 充当网关或代理的服务器从要发送请求的上游服务器收到非法的回应;

503 服务器暂时不可用;

504 等待网关超时;

505 不支持请求使用的 HTPP 协议版本;

 

(P255)

HTTP 协议设计时, GET 被作为一种向服务器申请资源的请求,而 POST 则作为一种向服务器发送数据的请求;

 

对于 ASP.NET 来说,当新建一个表单时,默认的请求方式是 POST;

 

(P276) Server.Execute()方法实现的不是页面的跳转的功能,而是页面的呼叫功能;

 

(P347) XPath 即为 XML 路径语言 (XML Path Language) ,它是一种同来确定 XML 文档中某部分位置的语言;

 

(P348) 自 XML 发展至今,曾出现三种被广泛使用的 XML 格式定义语言: DTD、XDR 和 XSD;

分享到:
评论

相关推荐

    .NET程序员面试指南2

    .NET程序员面试指南2 .NET程序员面试指南2 .NET程序员面试指南2

    .NET程序员面试指南1.pdf

    这是.NET程序员面试指南1 .NET程序员面试指南2=http://download.csdn.net/source/1597090

    .net程序员面试指南

    《.NET程序员面试指南》是一本专为准备.NET程序员面试者设计的实用参考资料,旨在帮助求职者更好地理解和应对面试中的各种技术问题。该指南涵盖了.NET框架的基础知识、C#编程语言、ASP.NET web开发、数据库交互、...

    .NET程序员面试指南-免费试读

    《.NET程序员面试指南》是一本专为.NET开发者准备的面试参考书籍,旨在帮助求职者在竞争激烈的IT行业中脱颖而出。本书不仅关注技术细节,还强调了应聘过程中的策略和注意事项,帮助开发者理解招聘方的需求,提升面试...

    C#与.NET程序员面试宝典

    《C#与.NET程序员面试宝典》取材于各大IT公司的历年面试题252个(包括研发类笔试及口试题目、情商及智商类题目),详细分析了应聘C#与.NET程序员职位的常见考点。《C#与.NET程序员面试宝典》主要内容包括:面试流程...

    《.net程序员面试指南》 第6章源代码

    在.NET编程领域,面试...掌握这些知识点,.NET程序员不仅能在面试中表现出扎实的理论基础,还能在实际项目中解决复杂问题,提升代码质量和效率。深入学习并熟练运用这些概念,对于成为一名优秀的.NET开发者至关重要。

    Android高薪之路:Android程序员面试宝典-李宁(高清PDF完整版)_part2

    C#与.NET程序员面试宝典-靳华(高清PDF扫描版)、 C与C++程序员面试宝典-梁镇宇(高清PDF扫描版)、 Java程序员面试宝典(第二版)-欧立奇(PDF扫描版) Java程序员面试宝典-杨磊(高清PDF扫描版)、 程序员面试宝典...

    Android高薪之路:Android程序员面试宝典-李宁(高清PDF完整版)_part1

    C#与.NET程序员面试宝典-靳华(高清PDF扫描版)、 C与C++程序员面试宝典-梁镇宇(高清PDF扫描版)、 Java程序员面试宝典(第二版)-欧立奇(PDF扫描版) Java程序员面试宝典-杨磊(高清PDF扫描版)、 程序员面试宝典...

    Visual Basic.NET程序员查询辞典-程序设计-

    《Visual Basic.NET程序员查询辞典-程序设计》是一本针对使用Visual Basic.NET进行软件开发的专业指南,它旨在帮助程序员深入理解和应用VB.NET的各种特性和技术。在这个编程环境中,开发者可以利用.NET Framework的...

    .NET程序员面试指南试题

    为了帮助求职者更好地掌握面试技巧和准备面试,朱毅等人编著的《.NET程序员面试指南》应运而生,成为技术人准备面试的有力工具。 本书详细介绍了应聘.NET开发职位的诸多技巧和禁忌,使求职者能够有条不紊地进行面试...

    .net程序员面试题

    收集了很多师兄师姐出去就业后,收集回来的企业面试.net程序员的面试题啊!不容易啊!1-8份面试题,好好看啊!都是技术题,祝面试上自己喜欢的职业

    .net程序员面试宝典.pdf

    2011年.net程序员面试宝典.pdf

    .net 面试题(.net程序员面试必看)

    对于.NET程序员来说,面试时可能会遇到各种技术问题,涵盖语言基础、框架理解、设计模式、并发处理、数据库交互等多个方面。以下是一些可能在.NET面试中出现的重要知识点: 1. **C#语言基础**: - 类与对象:理解...

    程序员面试指南-数据结构与算法题解

    资源名称:程序员面试指南-数据结构与算法题解资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    ASP.NET程序员面试题及答案

    ### ASP.NET程序员面试题解析与知识点详解 #### 题目背景 在IT行业,尤其是软件开发领域,ASP.NET作为一款流行的服务器端Web应用程序框架,备受程序员们的青睐。对于求职者而言,掌握ASP.NET及其相关的C#编程语言...

    .NET程序员面试指南

    该书着重针对.NET技术职位的应聘者,在.NET框架各个技术类别中,选取最常出现在.NET面试中的问题,进行分析和解答,同时解释和剖析和该问题相关的.NET机制原理,帮助读者达到知其然更知其所以然的程度。该书几乎包揽...

    计算机软件-编程源码-程序员指南--.Net.zip

    《程序员指南--.Net》是一份综合性的学习资源,针对使用.NET框架进行软件开发的程序员。这份压缩包中包含了丰富的编程源码,旨在帮助开发者深入理解.NET平台的工作原理,提高编程技能,以及优化代码实践。 .NET是...

Global site tag (gtag.js) - Google Analytics