zoukankan      html  css  js  c++  java
  • [转载]C#堆栈讲解

    1:栈就是堆栈,因为堆和堆栈这样说太拗口了,搞得像绕口令,所以有些时候就把堆栈简称为栈。堆和栈,你看这又多舒服。但无论什么时候,堆栈都不等于堆和栈,必须说,堆和栈或者堆和堆栈  

    2:值类型变量和引用类型变量是保存在栈里面的。而值类型变量保存值类型实例的值,引用类型变量保存引用类型实例的引用。 对象的引用是保存的指向堆中的地址的指针,堆中保存的才是对象实例 

    3平时一个对象本身就包含有值类型和对象的实例,这就要分清字段和变量的概念。一般来说可以这样讲,在类里面声明的,是字段,在方法里面声明的,是变量。字段有访问修饰符(public/private/protected/internal),变量没有。

    4变量和字段的区别,字段和变量虽然用起来差不多,但实际上有很大的区别。变量永远是储存在栈里面的,字段跟随类的实例走。

    5:栈是一种满足后进先出的表;堆是一种满足父节点总不大于(或不小于)子节点的树。不是一个对象实例就是一个堆(对象的成员就是一个节点),而是所有的对象实例是一个堆(一个对象只是堆中的节点)。

    值类型:

    int

    Float

    Char

    double

    结构

    ………...

    引用类型:

    接口

    数组

    字符串

    1:值类型的数据存储在内存的堆栈中,从堆栈中可以快速访问这些数据,因此值类型表示实际的数据。

    2:引用类型表示指向存储在内存堆中的数据的指针或引用。

    3:数据释放时,值类型数据是自动释放,而引用类型的数据需要垃圾回收器来收回。

    4:值类型的默认值是:0,引用类型的默认值是:null

      对于值类型的类,类的实例储存在变量里面,也就是类的实例跟随变量储存在栈上。  

      对于引用类型的类,类的实例储存在托管堆上。  

     
     
    转自:https://www.cnblogs.com/xiatianoo/p/4840819.html
  • 相关阅读:
    Oracle触发器用法及介绍
    连接mysql用mysql_connect不能连接
    中标麒麟上安装配置达梦数据库7
    (转)全局变量和局部变量区别
    DSP编程与调试总结
    SERCOS总线程序相关
    C编程小结1
    C语言编程的一些小总结
    【转】#define 定义别名和 typedef 声明类型的区别
    DSP开发程序相关问题总结
  • 原文地址:https://www.cnblogs.com/AaronBear/p/7841398.html
Copyright © 2011-2022 走看看