C# 面试前的准备_基础知识点的回顾_03

1.HTTP中Post和Get区别

这忒简单了吧,大家是不是感觉到兴奋了,长舒一口气了,终于出现了一个可以聊上10分钟的问题了。

根据HTTP规范,Get用于信息获取,而且应该是安全的和幂等的。 参数在URL后,以?分割,以&相连。

根据HTTP规范,Post表示可能修改服务器的资源请求。数据存在HTTP包中

以上最基本的得知道吧,重点可以聊的出现了,安全性。

详细请拜读:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

特别要注意中的幂等表示的安全性和数据安全性这是两回事,深入透彻的和面试官聊同一个词语在不同情况下的含义的时候,会让ta觉得你确实沉下去仔细研究了这个,弄懂了原理,而非浮与表面

这个问题再补充一点:

因为Get是安全的,所以Get返回的内容可以被浏览器,Cache服务器缓存起来,但是,缓存服务器不会缓存Post的请求内容,索引有些时候你提交表单后按下F5的时候,跳出来确认框。

以上这句能看懂,说明你基本理解了Get,Post.

既然都走到HTTP这块了,面试官就继续追讨

UDP,TCP区别

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,这只做简单、形象的介绍,因为我只做到了理解这个过程。

主机A向主机B说:“我想给你发数据,可以吗?”  这是第一次对话;主机A向主机B

主机B回答A说:“可以,你什么时候发?”       这是第二次对话;主机B向主机A

主机A向主机B说:“我现在就发,你接着吧!”     这是第三次对话;主机A向主机B

三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。如我们打电话,聊QQ。不用管对方同意,可以直接拨打和发送信息。

具体可以参考百度:http://baike.baidu.com/link?url=ZHBJ2gr3HySVVwOYGlqeOQJdeavqBAcDCr7udU7brRyewsTlwGguXZyd3rXZlk6UVdC_Gx-s9RyF57NBHsWI9K

基本上面试官是否继续扩展,就看你回答的情况了

2.C#中如何判断两个对象是不是相等?

没看错吧,这个是问题?判断相等需要问!!!小心,这个题坑大着呢

判断相等有 ==,Equal,ReferenceEquals 

 

ReferenceEquals是Object的静态方法,用于比较两个引用类型的变量是否是对于同一个对象的引用。对于值类型它总是返回false。

 

==是一个可以重载的二元操作符,可以用于比较两个对象是否相等。 
对于内置值类型,==判断的是两个对象的代数值是否相等。它会根据需要自动进行必要的类型转换,并根据两个对象的值是否相等返回true或者false。而对于用户定义的值类型,如果没有重载==操作符,==将是不能够使用的。对于引用类型,== 默认的行为与ReferenceEquals的行为相同,仅有两个对象指向同一个Reference的时候才返回true。但是.NET Framework中的类很多对==进行了重载,例如String类的==与Equals的行为相同,判断两个字符串的内容是否相等。所以在应用中,对于 系统定义的引用类型建议不要使用==操作符,以免程序出现与预期不同的运行结果。

 

Equals方法对于值类型和引用类型的定义不同,对于值类型,类型相同,并且数值相同(对于struct的每个成员都必须相同),则Equals返回 true,否则返回false。而对于引用类型,默认的行为与ReferenceEquals的行为相同,仅有两个对象指向同一个Reference的时 候才返回true。

 

以上均摘自:http://www.cnblogs.com/zagelover/articles/2741409.html  具体详细的内容,点击查看,分析得很透彻

文章末尾还提到了 深拷贝和浅拷贝,这就默认的扩展开了,但基本又回到了值类型,引用类型的理解

posted @ 2015-03-23 14:49  @睦  阅读(167)  评论(0编辑  收藏  举报