值类型与引用类型
1、理解参数按值传递?以及按引用传递?
按值传递:对于值类型传递的它的值拷贝副本,而引用类型传递的是引用变量的内存地址,他们还是指向的同一个对象。
按引用传递:通过关键字out和ref传递参数的内存地址,值类型和引用类型的效果是相同的。
2、out 和 ref的区别与相同点?
out 和 ref都指示编译器传递参数地址,在行为上是相同的;
他们的使用机制稍有不同,ref要求参数在使用之前要显式初始化,out要在方法内部初始化;
out 和 ref不可以重载,就是不能定义Method(ref int a)和Method(out int a)这样的重载,从编译角度看,二者的实质是相同的,只是使用时有区别;
3、说说值类型和引用类型的生命周期?
值类型在作用域结束后释放。
引用类型由GC垃圾回收期回收。
4、static 构造函数什么时候执行?其中的代码逻辑是否是线程安全?
静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。
安全。
GC与内存管理
1、简述一下一个引用对象的生命周期?
一个对象的生命周期简单概括就是:创建>使用>释放,在.NET中一个对象的生命周期:
new创建对象并分配内存
对象初始化
对象操作、使用
资源清理(非托管资源)
GC垃圾回收
2、using() 语法是如何确保对象资源被释放的?如果内部出现异常依然会释放资源吗?
using() 只是一种语法形式,其本质还是try…finally的结构,可以保证Dispose始终会被执行。

本文详细解析了值类型与引用类型的差异、线程池的工作原理及其优缺点、Redis的数据类型及应用场景、数据库分表分库策略以及负载均衡算法的特点。
最低0.47元/天 解锁文章
2929





