.NET面试必备知识点汇总

需积分: 11 2 下载量 42 浏览量 更新于2024-10-29 收藏 410KB PDF 举报
“.net面试题汇总大全” 这篇文章是关于.NET面试题的集合,涵盖了.NET平台基础知识、编程语言特性、类与对象、线程管理、内存模型等多个方面的常见问题。这些问题对于准备.NET相关职位面试的求职者来说是非常有价值的,能够帮助他们理解和掌握核心概念。 1. **GC(Garbage Collection)**:GC是.NET中的自动内存管理系统,用于回收不再使用的对象所占用的内存空间。它的存在简化了程序员的工作,避免了内存泄漏。 2. **String与StringBuilder**:String是不可变对象,每次修改都会创建新对象;StringBuilder在内存中可变,适合大量字符串操作,提高性能。 3. **static构造方法**:用于初始化静态字段,不接受参数,且在类实例化之前执行。 4. **abstract class与interface**:abstract class可以包含实现的方法,而interface只能定义方法签名;类可以继承一个abstract class,但可以实现多个interface。 5. **线程启动**:使用`Start()`方法启动线程,而`Run()`方法是在线程内运行的主体。 6. **接口与继承**:接口可以继承其他接口;抽象类可以实现接口,但实体类只能继承一个抽象类。 7. **构造器不可重写**:构造器不能被子类重写,但可以被覆盖。 8. **不可继承String类**:String类是密封的,不能被继承。 9. **try-finally**:即使在`try`块中有`return`语句,`finally`块的代码也会被执行,通常在返回值计算后并返回前执行。 10. **hashCode与equals**:两个对象值相同但hashcode不同可能导致哈希表冲突;equals用于比较对象内容,而hashcode用于快速定位。 11. **switch语句**:switch可以作用于byte、char、short、int、枚举类型以及String(JDK 7及以上)。 12. **List, Set, Map与Collection接口**:List和Set继承自Collection,Map则不是,它继承自Iterable。 13. **Set中的唯一性**:通过equals()方法判断元素是否重复,==用于基本类型或引用类型的比较。 14. **length()方法**:数组有length属性而非length()方法,String有length()方法。 15. **sleep()与wait()**:sleep()使当前线程暂停指定时间,不会释放锁;wait()让线程进入等待状态,释放锁,需配合synchronized使用。 16. **short变量操作**:直接相加可能超出short范围,需用`(short)(s1+1)`显式转换;`s1+=1`编译器会自动处理类型提升。 17. **final, finally, finalize**:final修饰变量表示不可变,修饰方法表示不可重写,修饰类表示不可继承;finally用于确保代码块的执行,无论是否发生异常;finalize()是对象被垃圾回收前调用的清理方法。 18. **并发数据处理**:可以使用线程池、异步编程、队列等技术来高效处理大量并发数据。 19. **进程与线程**:进程是资源分配的基本单位,线程是执行单元,进程间通信复杂,线程间通信相对简单。 20. **堆与栈**:栈存储局部变量和方法调用信息,速度快但空间有限;堆存储对象实例,大小不固定,由GC管理。 21. **static的作用**:static修饰的成员属于类而不是实例,所有实例共享,无需实例化即可访问。 22. **访问修饰符**:private提供私有访问,只在类内部可见;protected在类及其子类中可见;public全局可见;默认在同一包内可见。 以上是.NET面试题的部分内容,涵盖的知识点广泛,对于理解和掌握.NET编程有很好的指导作用。