C#面试常考点总结

2.面试题 (1) 装箱与拆箱

装箱 : 对值类型在堆中分配一个对象实例,并将该值复制到新的对象中

1)第一步:新分配托管堆内存(大小为值类型实例大小加上一个方法表指针。

(2)第二步:将值类型的实例字段拷贝到新分配的内存中。

(3)第三步:返回托管堆中新分配对象的地址。这个地址就是一个指向对象的引用了。

拆箱:

3.栈 顺序存储 而 堆 无序 ,栈子自动释放内存 堆 需要 GC 回收

4.对文件的读写操作

5.C# 线程同步的实现

6.数据和链表 的优劣

数组 :劣:删除时更麻烦 删一个 就得把以前的以此往后移动 优:空间更自由 分配在栈上 系统自动分配

链表 :分配在堆上 更自由

7.抽象类 abstract 和 接口 interface 的异同

相同点:

(1)都可以被继承

(2)都不能被实例化

不同点:

(1)抽象类被子类继承;接口被类实现

(2)抽象类只能被单个类继承;接口可继承接口,并可多继承接口

8.SQL 性能优化 ;

(1):避免SELECT *

(2)为搜索字段简历 索引

如果在你的表中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。

GPT 的回答:

9.重载和重写的区别

重载是 同一个方法 传入的参数的类型和数量不同 是面向过程的 重写 是 对虚方法的重写

是面向对象的

10.值传递和引用他传递

值传递时,系统首先为被调用方法的形参分配内存空间,并将实参的值按位置一一对应地复制给形参,此后,被调用方法中形参值得任何改变都不会影响到相应的实参;

引用传递时,系统不是将实参本身的值复制后传递给形参,而是将其引用值(即地址值)传递给形参,因此,形参所引用的该地址上的变量与传递的实参相同,方法体内相应形参值得任何改变都将影响到作为引用传递的实参。

简而言之,按值传递不是值参数是值类型,而是指形参变量会复制实参变量,也就是会在栈上多创建一个相同的变量。而按引用传递则不会。可以通过 ref 和 out 来决定参数是否按照引用传递。

11.单例模式

12.C# 数据库 操作 常见的类 : SqlConnection Sql Commend

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值