Acy求知Unity Week1_day5
相关博客:
装箱拆箱内部:https://blog.youkuaiyun.com/qiaoquan3/article/details/51439726
GC:https://blog.youkuaiyun.com/sinat_40003796/article/details/128041837
值类型与引用类型
值类型:直接存储数据;作为局部变量时,存储在栈上;作为成员变量时,存储在堆上;
·内置值类型【btye (u)short (u)int (u)long bool 】
·用户定义的值类型 【struct】
·枚举【enum】
引用类型:持有数据的引用;局部变量时,存储在堆上
·string int[] class interface
·指针类型、接口类型
·子描述类型【数组、类类型(用户定义的类、已装箱的值类型、委托)】
装箱拆箱
装箱:值类型转引用类型;内存分配GC,尽量避免。
·一次装箱要进行:分配内存和拷贝数据这两项比较影响性能的操作。
··调用一个含类型为Object的参数的方法,将一个值类型(如Int32)传入:可以通过重载函数来避免;
··非泛型的容器,将元素类型定义为Object,将值类型数据加入容器:可以通过泛型来避免;
·想改造的代码为第三方程序集,只能装箱。
拆箱:引用类型转值类型。
垃圾回收(GC)机制
·让内存利用率更高。
·C#内置了自动垃圾回收GC,变量失去引用后 GC 会帮我们自动回收,但不包括数据流,和一些数据库的连接,这些需要手动释放资源,调用 Close() 或者 Dispose() 方法进行手动回收。
·GC 只会回收堆的内存,堆中的没有被引用或者null的对象才会被回收。
·值类型在栈中的使用完马上就会被释放,不需要 GC 进行处理;
静态的变量也不会被回收。

被折叠的 条评论
为什么被折叠?



