博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
值类型引用类型
阅读量:6390 次
发布时间:2019-06-23

本文共 705 字,大约阅读时间需要 2 分钟。

的存取是无序的

是一种后进先出的数据结构
堆栈其实是栈,栈,堆栈英文都是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之后引入了泛型来减少装箱操作和拆箱操作消耗。

转载于:https://www.cnblogs.com/ecollab/p/6207372.html

你可能感兴趣的文章
2011百度之星初赛B圆环
查看>>
《转》VMware vSphere 5.1 学习系列之四:安装 SQL Server 数据库
查看>>
网页主动探测工具使用
查看>>
数组-splice
查看>>
React多页面应用脚手架-v1.3.0
查看>>
Git 取消上一次commit操作,但保留add操作
查看>>
用MySQL实现微博关注关系的方案分析
查看>>
form
查看>>
模板方法设计模式与策略模式
查看>>
GPSInfoProvider定位
查看>>
wamp如何更改网站根目录DocumentRoot
查看>>
CYQ.Data V4系列全面开源(2013-08-04)
查看>>
socket udp
查看>>
maven 内置参数
查看>>
mac terminal vim delete key
查看>>
linux标准daemon编写方式
查看>>
minicom HOWTO
查看>>
23种设计模式MM版形象描述
查看>>
java计算开方
查看>>
让你不再害怕指针(一)
查看>>