软件工程师面试问题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1软件工程师面试问题及答案点击查看:相关推荐:||||谈谈指针和引用的区别?指针用操作符“*”和“-”,引用使用操作符“&”.相同点是:指针与引用都是让你间接引用其他对象。区别:(1).指针是一个实体,指向一块内存,它的内容是所指内存的地址;而引用仅是个别名,是某块内存的别名。(2).引用使用时无需解引用(*),指针需要解引用;(3).引用只能在定义时被初始化一次,之后不可变,“从一而终”;指针可变;(4).引用没有const类型,指针有const类型,const的指针不可变;(5).引用不能为空,指针可以为空;(6).“sizeof引用”得到的是所指向的变量(对象)的大小,而“sizeof指针”得到的是指针本身(所指向的变量或对象的地址)的大2小;typeid(T)==typeid(T&)恒为真,sizeof(T)==sizeof(T&)恒为真,但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。(7).指针和引用的自增(++)运算意义不一样;你在程序代码中用assert吗?assert一般用于做什么?(1)是我常用。(2)主要用于DEBUG下断言,即假设一定是这样的,否则就是错误的。例如asser(a100);i++相比++i哪个更高效?为什么?答:(1)++i比i++效率高。(2)i++要多调用一次类的构造和析够函数C#中的委托是什么?事件是不是一种委托?委托是指具有相同属性(也称具有相同的函数签名:返回类型相同,参数类型、参数顺序及参数个数相同)的函数或方法的抽象,关键字为delegate。主要用途是三个:1)函数回调;2)传递方法;3)事件机制事件就是一个狭义的委托,也就是事件是一个用于事件驱动模型的专用委托,对事件的声明,实际是声明一个私有的委托变量,对委托变量进行封装,即委托变量加上event关键字后,不管其前面的访问修饰符是public还是private,编译器都会将其编译为private。委托是一个类,它定义了方法的类型,使得可以将方法当作另3一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。以委托为参数的函数具有一定的通用性。使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(这里用“调用”这个词,是因为此变量代表一个方法),可以依次调用所有绑定的方法。请叙述属性与索引器的区别。属性:它是存取类的字段,索引器:Indexer它是特殊的属性,用它可以使用户像访问数组一样访问类的成员。请详述在dotnet中类(class)与结构(struct)的异同。类class可以进行实例化,它是引用类型,内存分配在栈中,效率高,它有默认的构造函数,有析构函数可以使用abstract和sealed,protected修饰符。要用new进行初始化,结构它是属于值类型,内存分配在堆中,效率低,它没有默认的构造函数,但是可以添加构造函数,没有析构函数没有abstract和sealed(因为不能继承)不能有protected修饰符可以不使用new初始化,但是可以在结构中初始化实例字段。在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别。回答要点:说明详细的空间分配。答:stringstr=null是不给他分配内存空间,而stringstr=“”给它分配长度为空字符串的内存空间.4请详述在dotnet中类(class)与结构(struct)的异同答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。如何区别重载方法?不同的参数类型,不同的参数个数,不同的参数顺序。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。session(viewstate)简单,但易丢失application全局cookie简单,但可能不支持,可能被伪造inputttype=hidden简单,可能被伪造url参数简单,显示于地址栏,长度有限数据库稳定,安全,但性能相对弱5

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功