题
1,.NET中类和结构有什么不同
类是引用类型,而结构是值类型。引用类型在堆中分配,内存管理由垃圾回收器处理。值类型在堆栈上或以内联方式分配,且在超出范围时释放。通常,值类型的分配和释放开销更小。然而,如果在要求大量的装箱和取消装箱操作的情况下使用,则值类型的表现就不如引用类型。
备注: C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。栈中
C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。 堆中
堆,队列优先,先进先出。栈,先进后出
2,位移运算符
在C语言中<<是左移运算符, <<=是左移赋值符
a<<1 代表着左移计算,单纯的计算,并不改变a的值
a<<=1则意味着先对a进行左移计算,然后把计算的结果赋值给a,会改变a的值。
x<<y 换算公式为 x*(2*y)
实际应用:最有效的方法 8 = 2<<2
3,数据库索引
聚集索引是一种对磁盘上实际数据重新组织以按指定的一列或多列值排序。
sqlserver默认情况下建立的索引是非聚集索引,他不重新组织表中的数据,而是对每一行存储索引列值并用一个指针指向数据所在的页面。
4,装箱和拆箱
装箱是将值类型转换为引用类型(object) ;拆箱是将引用类型转换为值类型