当前位置: 移动技术网 > IT编程>开发语言>.net > 内存分配,垃圾回收

内存分配,垃圾回收

2018年10月08日  | 移动技术网IT编程  | 我要评论

黑狐全集下载,夜猫族的异想,维修手册

线程栈 stuck:存值类型,和引用类型的引用  先进后出,链表形式,连续摆放 clr(公共语言运行库(common language runtime))启动进程,main函数为一个线程入口

进程堆heap:存引用类型 进程中的一块区域

il:中间语言

对象的属性为值类型出现在堆里,方法里的值类型,由进程调用,出现在栈里

 

    /// <summary>
    /// class  引用类型
    /// </summary>
    public class referencetypeclass
    {
        private int _valuetypefield;//堆:因为对象都在堆里,对象里面的属性也在堆里
        public referencetypeclass()
        {
            _valuetypefield = 0;
        }
        public void method()
        {
            int valuetypelocalvariable = 0;//栈:全新的局部变量,线程栈来调用方法,然后分配内存
            new process();//new对象,分配在堆里
        }
    }

 装箱拆箱(仅仅是说内存的拷贝动作):内存copy 也会浪费性能  通常都是因为object,

 装箱拆箱只能发生在父子类里面, 因为这样你才能转换呀

dynamic 是引用类型的语法糖

                string student = "123";
                string student2 = student;

                console.writeline(student); //123
                console.writeline(student2);//123

                student2 = "app";
              
                console.writeline(student);//123
                console.writeline(student2);//app            
     string student = "大山";
                string student2 = "app";//共享
                student2 = "大山";
                console.writeline(object.referenceequals(student, student2));//true 竟然一样
                //就是同一个  享元模式 clr内存分配字符串的时候,会查找相同值,有就重用了

少new对象,创建对象需要内存开辟空间,

碎觉了

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网