• 值类型引用类型


    的存取是无序的
    是一种后进先出的数据结构
    堆栈其实是栈,栈,堆栈英文都是stack
    托管堆是指.net分配引用类型对象的内存区域;
    而在.net中的值类型是放在线程栈上的

     方法中的变量是要确定内存大小:引用类型

    2、 对象的创建方式
    MyClass m = new MyClass();
    -> new创建了对象(newobj)
    -> 构造方法只是做了初始化

    1、首先new向操作系统申请内存
    2、计算构造方法的继承关系中所有字段的字节数.
    3、预算满足"字节数 + 常量 + 8"满足被4正处的最小数
    4、如果操作系统内存不够了,报异常
    5、如果内存够了,就返回一个地址
    6、在托管堆中有一个指针对对象的维护
    7、 指针对象一般指向一个可用内存,如果申请100字节,那么指针对象会返回当前地址,并下移100字节
    8、 在返回100个字节空间的时候,由构造方法将内存初始化,返回首地址
    9、交给引用类型变量
    10、 对象创建完毕

    ref参数的变量必须声明赋值后再传入方法是用,out参数的变量可以不赋值,但是必须在方法中赋值

    装箱是:在托管堆中分配内存,内存的大小是值类型中各个字段的内存和 加上类型对象指针和同步索引块, 然后复制到托管堆内存,然后返回对象地址。这个地址就是对一个对象的引用。

    拆箱操作的执行过程和装箱操作过程正好相反,是将存储在堆上的引用类型值转换为值类型并给值类型变量。

    装箱操作和拆箱操作是要额外耗费cpu和内存资源的,所以在c# 2.0之后引入了泛型来减少装箱操作和拆箱操作消耗。

  • 相关阅读:
    细说:Http协议 篇
    连接池
    实践
    事务
    一、Jdbc 入门
    ES6之路第一篇:let、const
    vue2饿了吗之路第二篇:登录
    RabbitMQ(三)——简单模式
    RabbitMQ(二)——模式类型
    RabbitMQ(一)——简介
  • 原文地址:https://www.cnblogs.com/ecollab/p/6207372.html
Copyright © 2020-2023  润新知