.net开发面试题
.net工程师要做好准备才能在面试中脱颖而出,提前了解开发面试题很重要。下面小编已经为你们整理了.net开发面试题,希望可以帮到你。
.net开发面试题(一)
1、请你说说.NET中类和结构的区别?
答:结构是值类型,在堆栈上分配地址,所有的基类型都是结构类型,如System.int或System.string,不能被继承。
类是引用类型(new),可以被继承,在堆上分配地址,堆栈的执行效率要比堆的执行效率高,但堆栈的资源有限。
2、死锁的必要条件?怎么克服?
答:系统资源不足,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源阻塞,且对已获得的资源不放
3、接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?
答:接口是可以继承接口;抽象类是可以实现接口;抽象类可以继承实体类,只要实体类有明确的构造函数.
4、构造器Constructor是否可以被继承?是否可以被Override?
答: Constructor不可以被继承,因此不能被重写(Override),但可以被重载(Overloading)
5、当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的方法? 答:不可以,一个对象的方法只能由一个线程访问
6、C#是否可以对内存直接进行操作?
答:可以,因为可以使用指针
7、数组有没有Length()这个方法?string有没有这个方法?
8、谈谈final,finally,finallize的区别?
答:final用来申明属性、方法、类,表示属性不可变,方法不可以被覆盖,类不可以被继承。
Finally是异常处理语句结构,总是执行。
Finallize是object类一个方法,在垃圾回收机制中执行的时候会被调用被回收对象的方法。
.net开发面试题(二)
1.Override, Overload,的区别?
答:Override是重写的意思,它表示重写基类的方法,
而且方法的签名【名称,返回类型,参数类型,参数个数】要与基类相同。
Overload是重载是意思,它也表示重写基类的方法,但是只要方法名相同,别的必须不同。
2.概述反射和序列化?
答:反射:要给反射下一个定义还是比较难的,这里先说说我的理解。
序列化:将对象转换为另一种媒介传输的格式过程。
如,序列化一个对象,用Http通过internet在客户端和服务器之间传递该对象,在另一端用【反序列化】从该流中重新得到对象。
3.什么是ERP?ERP的演变过程?
答:所谓ERP是英文Enterprise Resource Planning(企业资源计划)的简写。它是从MRP(物料资源计划)发展而来的新一代集成化管理信息系统,它扩展了MRP的功能,其核心思想是供应链管理,它跳 出了传统企业边界,从供应链范围去优化企业的资源,是基于网络经济时代的新一代信息系统。它对 于改善企业业务流程、提高企业核心竞争力的作用是显而易见的。
.net开发面试题(三)
1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 private:私有访问,它只能在声明自身的类中进行访问。
protected:表示受保护的访问,该类内部和继承类中可以访问 .public :表示公共访问,在代码任何位置都可对其进行访问。
internal表示内部成员,在同一命名空间内可以访问。
2. C#中的委托是什么?事件是不是一种委托?
委托是指具有相同属性(也称具有相同的函数签名:返回类型相同,参数类型、参数顺序及参数个数相同)的函数或方法的抽象,关键字为delegate。主要用途是三个:1)函数回调;2)传递方法;3)事件机制。
事件就是一个狭义的委托,也就是事件是一个用于事件驱动模型的专用委托,对事件的声明, 实际是声明一个私有的委托变量,对委托变量进行封装,即委托变量加上event关键字后,不管其前面的访问修饰符是public还是private,编译器都会将其编译为private。
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。以委托为参数的函数具有一定的通用性。
使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(这里用“调用”这个词,是因为此变量代表一个方法),可以依次调用所有绑定的方法。
3. abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
不可以一起使用,但是可以和override一起使用。
4. 请叙述属性与索引器的区别。
属性:它是存取类的字段,索引器:Indexer它是特殊的属性,用它可以使用户像访问数组一样访问类的成员。
5. 请详述在dotnet中类(class)与结构(struct)的异同。
类class可以进行实例化,它是引用类型,内存分配在栈中,效率高,它有默认的构造函数,有析构函数可以使用 abstract 和 sealed, protected 修饰符。要用new进行初始化,结构它是属于值类型,内存分配在堆中,效率低,它没有默认的构造函数,但是可以添加构造函数,没有析构函数没有 abstract 和 sealed(因为不能继承)不能有protected 修饰符 可以不使用new 初始化,但是可以在结构中初始化实例字段。
看了“.net开发面试题”