.net面试题:
1、请说出.NET中类和结构体的区别。
结构体是值类型,类是引用类型。
2、什么是死锁?死锁的必要条件是什么?怎么克服?
死锁是指两个或两个以上进程在执行过程中,由于竞争资源或互相通讯产生的阻塞现象,没有外力的作用下他们都无法继续进行。此时称系统为死锁状态,这些在永远互相等待的进程称为死锁进程。
产生死锁的必要条件:1、互斥条件:每个资源只能被一个进程占用。2、请求与保持条件:一个进程在请求资源而阻塞时,已获得的资源保持不放。3、不剥夺条件:进程已获得资源,在未使用完之前,不能强行剥夺。4、循环等待条件:若干进程形成一种首尾等待资源关系。
克服:尽量避免以上四个条件的出现,资源分配要合理,防止进程处在等待情况下占用资源。
3、接口可以继承接口;抽象类可以实现抽象接口;只要构造函数不是私有的抽象类就可以继承实体类。
4、构造器Constructor是否可以被继承?是否可以被重写?
不可以被继承,不可以被重写。
5、是否可以继承string类?
不可以
6、当一个线程进入一个对象方法后,其他线程是否可以进入该对象的方法?
- 如果其他方法前加了synchronized关键字,就不能,如果没加synchronized,则能够进去。
- 如果这个方法内部调用了wait(),则可以进入其他加synchronized的方法。
- 如果其他方法加了synchronized关键字,并且没有调用wai方法,则不能。
7、什么是委托?事件是不是委托?
委托是一种安全的封装的方法;事件是一种委托;
8、Error和Exception有什么区别?
error是报错,exception是异常
9、概述反射和序列化。
序列化就是把一个对象保存到一个文件中或一个数据库字段,反序列化就是把这个文件转换成对象。
反射就是动态生成的实例。
10、Const和Readolny的区别。
Const不变常量,无法修改;
Readolny只能读取,无法修改;
11、UDP和TCP连接有何不同?