软件工程师面试题

时间:2021-01-16 11:04:42 面试问题 我要投稿

软件工程师面试题

  谈谈指针和引用的区别?

软件工程师面试题

  指针用操作符“*”和“->”,引用使用操作符“&”. 相同点是:指针与引用都是让你间接引用其他对象。

  区别:(1). 指针是一个实体,指向一块内存,它的内容是所指内存的地址;而引用仅是个别名,是某块内存的别名。

  (2). 引用使用时无需解引用(*),指针需要解引用;

  (3). 引用只能在定义时被初始化一次,之后不可变,“从一而终”;指针可变;

  (4). 引用没有 const类型,指针有 const类型,const 的指针不可变;

  (5). 引用不能为空,指针可以为空;

  (6). “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;typeid(T) == typeid(T&) 恒为真,sizeof(T) == sizeof(T&) 恒为真,但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。

  (7). 指针和引用的自增(++)运算意义不一样;

  你在程序代码中用assert吗?assert一般用于做什么?

  (1) 是我常用。

  (2)主要用于DEBUG下断言,即假设一定是这样的,否则就是错误的。例如 asser ( a > 100 );

  i++ 相比 ++i 哪个更高效?为什么?

  答:(1)++i 比 i++效率高。

  (2)i++要多调用一次类的构造和析够函数

  C#中的委托是什么?事件是不是一种委托?

  委托是指具有相同属性(也称具有相同的函数签名:返回类型相同,参数类型、参数顺序及参数个数相同)的函数或方法的抽象,关键字为delegate。主要用途是三个:1)函数回调;2)传递方法;3)事件机制

  事件就是一个狭义的委托,也就是事件是一个用于事件驱动模型的专用委托,对事件的声明, 实际是声明一个私有的委托变量,对委托变量进行封装,即委托变量加上event关键字后,不管其前面的访问修饰符是public还是private,编译器都会将其编译为private。

  委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。以委托为参数的函数具有一定的通用性。

  使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(这里用“调用”这个词,是因为此变量代表一个方法),可以依次调用所有绑定的方法。

  请叙述属性与索引器的区别。

  属性:它是存取类的字段,索引器:Indexer它是特殊的属性,用它可以使用户像访问数组一样访问类的`成员。

  请详述在dotnet中类(class)与结构(struct)的异同。

  类class可以进行实例化,它是引用类型,内存分配在栈中,效率高,它有默认的构造函数,有析构函数可以使用 abstract 和 sealed, protected 修饰符。要用new进行初始化,

  结构它是属于值类型,内存分配在堆中,效率低,它没有默认的构造函数,但是可以添加构造函数,没有析构函数没有 abstract 和 sealed(因为不能继承)不能有protected 修饰符 可以不使用new 初始化,但是可以在结构中初始化实例字段。

  在C#中,string str = null与string str = “” 请尽量使用文字或图象说明其中的区别。

  回答要点:说明详细的空间分配。

  答:string str = null是不给他分配内存空间,而string str = “” 给它分配长度为空字符串的内存空间.

  请详述在dotnet中类(class)与结构(struct)的异同

  答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.

  简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。

  答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。

  如何区别重载方法?

  不同的参数类型,不同的参数个数,不同的参数顺序。

  请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。

  session(viewstate) 简单,但易丢失

  application 全局

  cookie 简单,但可能不支持,可能被伪造

  input ttype="hidden" 简单,可能被伪造

  url参数简单,显示于地址栏,长度有限

  数据库稳定,安全,但性能相对弱

【软件工程师面试题】相关文章:

笔试面试题—软件测试工程师04-21

嵌入式软件工程师面试题11-16

2017软件测试面试题06-13

傲盾软件面试题11-29

广州某公司软件工程师面试题目11-26

2016嵌入式软件开发工程师面试题09-24

枫叶软件面试题与答案11-16

2016年嵌入式软件工程师面试题(附答案)09-24

品恩科技软件测试面试题12-06

Java工程师面试题11-09