• <menu id="uku4c"><u id="uku4c"></u></menu>
  • <input id="uku4c"><u id="uku4c"></u></input>
  • <menu id="uku4c"></menu><menu id="uku4c"><acronym id="uku4c"></acronym></menu>
  • <menu id="uku4c"><tt id="uku4c"></tt></menu>
  • <menu id="uku4c"></menu>
  • <nav id="uku4c"><tt id="uku4c"></tt></nav>
  • C#中关于值类型和引用类型的个人理解

    值类型,除了最终继承自Object,还继承自ValueType

    值类型继承ValueType,ValueType继承Object。(c#中所有的类型都最终继承自Object)

     

    创建引用类型时,runtime会为其分配两个空间,一块空间分配在堆上,存储引用类型本身的数据,另一个块空间分配在栈上,存储对堆上数据的引用(实际上存储的堆上的内存地址,也就是指针)。

    创建值类型时, runtime会为其分配一个空间,这个空间分配在变量创建的地方,如:

          如果值类型是在方法内部创建,则跟随方法入栈,分配到上存储。

          如果值类型是引用类型的成员变量,则跟随引用类型,存储在上。

     

    值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的

     

    值类型存取速度快,引用类型存取速度慢。

     

    值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用

     

    栈的内存分配是自动释放;而堆在.NET中会有GC来释放       

     

    值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中

     

    如:int是值类型,string是引用类型,引用类型指向的是堆中的位置

    相关文章
    相关标签/搜索
    每日一句
      每一个你不满意的现在,都有一个你没有努力的曾经。
    公众号推荐
       一个历史类的公众号,欢迎关注
    一两拨千金
    天下彩天空彩票与香港小说 青海省| 永宁县| 垫江县| 宣城市| 新密市| 甘肃省| 遂川县| 贡嘎县| 太白县| 班玛县| 洛隆县| 那曲县| 普定县| 衡阳县| 甘南县| 深州市| 大宁县| 兴安县| 垣曲县| 资中县| 通河县| 广州市| 梁河县| 牙克石市| 莱州市| 郑州市| 珠海市| 电白县| 尉氏县| 闽侯县| 崇礼县| 页游| 仁化县| 交城县| 措勤县| 龙岩市| 汕头市| http://fa.hz0j2r5vo.fun http://fa.hz0j0r0vo.fun http://fa.hz0j1r9vo.fun http://fa.hz0j1r0vo.fun http://fa.hz0j1r2vo.fun