C#、.Net 经典面试题目及答案
请你说说.NET 中类和结构的区别? 1, 请你说说.NET 中类和结构的区别? 答:结构和类具有大体的语法,但是结构受到的限制比类要多。结构不能申 明有默认的构造函数,为结构的副本是又编译器创建和销毁的,所以不需要默认 的构造函数和析构函数。结构是值类型,所以对结构变量所做的改变不会影响其 的原值,而类是应用类型,改变其变量的值会改变其原值。申明结构用 Struck 关键字,申明类用 class 关键字,向方法传递结构是时是通过值传递的,而不是 通过引用。与类不同,结构的实例化可以不使用 New 关键字。类可以实现接口。 死锁的必要条件?怎么克服? 2, 死锁的必要条件?怎么克服? 答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源 每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已阻塞,对已 获得资源不放,进程获得资源时,未使用完前,不能强行剥夺。 接口是否可以继承接口?抽象类是否可以实现接口? 3, 接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继 承实体类? 承实体类? 软件开发网 mscto 答:接口是可以继承接口的,抽象类是可以实现接口的,抽象类可以继承实 体类,但是有个条件,条件是,实体类必须要有明确的构造函数。 是否可以被继承? 4, 构造器 Constructor 是否可以被继承?是否可以被 Override? 软件开发 网 mscto 答:Constructor 不可以被继承,因此不能被重写(Overriding),但可以被 重载(Overloading). 软件开发网 mscto 当一个线程进入一个对象的方法后, 5, 当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的 方法? 方法? 答:不可以,一个对象的方法只能由一个线程访问。 对于几? 6, 用最有效的方法算出等已 8 对于几? 答:2<<3. C#是否可以对内存直接进行操作? 是否可以对内存直接进行操作 7, C#是否可以对内存直接进行操作?
答:这个问题比较难回答,也是个很大的问题。但是可以这样问答。C#是可 以对内存进行直接操作的,虽然很少用到指针,但是 C#是可以使用指针的,在 用的时候需要在前边加 unsafe,,在.net 中使用了垃圾回收机制(GC)功能,它替 代了程序员,不过在 C#中不可以直接使用 finalize 方法,而是在析构函数中调 用基类的 finalize()方法。 有是区别? 8, Error 和 Exception 有是区别? 答:error 表示恢复不是不可能,但是很困难,exception 表示一种实际或 实现
问题,它表示程序运行正常不可以发生的。 的区别? 9, 谈谈 final,finally,finallize 的区别? 软件开发网 mscto 答:final 用于申明属性,方
法和类,表示属性不可变,方法不可以被覆盖, 类不可以被继承。 Finally 是异常处理语句结构中,表示总是执行的部分。 Finallize 表示是 object 类一个方法,在垃圾回收机制中执行的时候会被 调用被回收对象的方法。 区别? 10, HashMap 和 Hashtable 区别? 答:HashMap 是 Hashtable 的轻量级实现,非线程安全的实现他们都实现了 map 接口,主要区别是 HashMap 键值可以为空 null,效率可以高于 Hashtable。 11, 的区别? 11,Collection 和 Collections 的区别? 答:Collection 是集合类的上级接口,Collections 是针对集合类的一个帮 助类, 它提供一系列静态方法来实现对各种集合的
搜索, 排序, 线程安全化操作。 12,C#中委托是什么?事件是不是一种委托? 12,C#中委托是什么?事件是不是一种委托? 中委托是什么 答:委托是一种安全的类似与函数指针,但是她比指针要安全的多,它可以 把方法作为一个参数传递给另一个方法,可以理解为指向函数的引用。事件是一 种消息机制,它是一种委托,委托不带方法体。 13, Overload,的区别 的区别? 13,Override, Overload,的区别? 答:Override 是重写的意思,它表示重写基