.net
文章平均质量分 70
yanglamei1962
一个快乐的程序员老奶奶
展开
-
.net 异常处理,C#栈和堆的区别
栈通常保存着我们代码执行的步骤,而堆上存放的则多是对象,数据等。栈也是如此,当一个方法(或类型)被调用完成的时候,就从栈顶取走,接着下一个。堆则不然,像是一个仓库,储存着我们使用的各种对象等信息,跟栈不同的是他们被调用完毕不会立即被清理掉。栈存储的是基本值类型,堆存储的是new出来的对象。栈:所分配的内存是在一块连续的内存区域内.当我们声明变量时,那么编译器会自动接着当前栈区的结尾来分配内存。当我们程序执行的时候,在栈和堆中分配有四种主要的类型:值类型,引用类型,指针,指令。原创 2023-04-15 14:43:13 · 72 阅读 · 0 评论 -
C# 垃圾回收机制,.NET的GC机制有这样两个问题
GC并不是实时性的,这会造成系统性能上的瓶颈和不确定性。所以有了IDisposable接口,IDisposable接口定义了Dispose方法,这个方法用来供程序员显式调用以释放非托管资源。使用using语句可以简化资源管理。用到GC,命名空间System.GC;可以强制回收 GC.Collect()原创 2023-04-14 18:45:43 · 217 阅读 · 0 评论 -
.NET 面试宝典:大数据存储解决方案、redis容灾策略、Redis常用五大数据类型
实现分区操作时可以不拆分表,而将表物理地放置在个别的磁盘驱动器上。例如,将表放在某个物理驱动器上并将相关的表放在与之分离的驱动器上可提高查询性能,因为当执行涉及表之间联接的查询时,多个磁头同时读取数据。水平分区将一个表分段为多个表,每个表包含相同数目的列和较少的行。例如,可以将一个包含十亿行的表水平分区成12个表,每个小表代表特定年份内一个月的数据。通过将一个大表拆分成更小的单个表,只访问一小部分数据的查询可以执行得更快,因为需要扫描的数据较少。垂直分区将一个表分段为多个表,每个表包含较少的列。原创 2023-03-26 13:34:02 · 140 阅读 · 1 评论 -
.NET 面试宝典:锁表原因及如何处理、乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下,即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。DML锁的目的在于保证并发情况下的数据完整性,主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。原创 2023-03-25 15:56:52 · 242 阅读 · 1 评论