NET初级 + Spring 高频面试题(详细实战答案).docxVIP

  • 1
  • 0
  • 约4.05千字
  • 约 6页
  • 2026-10-13 发布于河北
  • 举报

NET初级 + Spring 高频面试题(详细实战答案).docx

.NET初级+Spring高频面试题(详细实战答案)

第一部分:.NET初级面试题(适合应届生、0-2年经验)

1、讲讲C#中值类型和引用类型的区别?

这是C#最基础的核心知识点,日常开发经常用到,两者最大的区别是内存存储方式和赋值逻辑不同。

值类型:数据直接存储在栈内存中,赋值的时候是完整拷贝值,两个变量相互独立,修改一个不会影响另一个。常见的值类型有int、double、bool、char、struct、枚举等。

引用类型:数据存储在堆内存中,栈里只存对象的内存地址。赋值的时候是拷贝地址,多个变量指向同一个堆内存对象,修改其中一个,所有指向该地址的变量都会跟着变化。常见引用类型有string、class、数组、集合、自定义类等。

补充:栈内存自动释放,速度快;堆内存需要GC垃圾回收机制回收,速度相对慢一点。

2、string和StringBuilder的区别?什么时候用哪个?

string是不可变字符串,一旦赋值就不能修改。每次对string做拼接、替换操作,都会生成一个全新的字符串对象,旧对象会等待GC回收。如果循环中频繁拼接字符串,会产生大量临时对象,造成内存浪费、程序卡顿。

StringBuilder是可变字符串,底层维护一个字符缓冲区,修改、拼接字符串时不会生成新对象,直接在原有缓冲区修改,性能很高。

使用场景:单次少量字符串操作用string;

文档评论(0)

1亿VIP精品文档

相关文档