黑马程序员_值类型和引用类型

运行中的程序使用两个内存区域存储数据:栈和堆。

 

栈是一个内存数组,一个后进先出的数据结构。

存储数据的类型:

某些类型变量的值

程序当前的执行环境

传递给方法的参数

特征:

数据只能从栈的顶端插入和删除

把数据放到栈顶称入栈

从栈顶删除数据称出栈

 

堆也是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据,堆里的内存可以任意顺序存入和移除。保存的数据由CLR的自动GCGarbage  collector 垃圾收集器)进行判断清理,无法显示的删除它们。

 

值类型和引用类型

数据项的类型定义了存储数据需要的内存大小、数据成员、执行的函数,决定了对象的内存中的存储位置——堆和栈

类型被分为:值类型和引用类型,由内存中的存储方式决定。

值类型只需要一段单独的内存(栈),用于存储实际的数据

引用类型需要两端内存:(objectstringclassinterfacedelegatearray

第一段存储实际的数据,它位于堆中

第二段是一个引用(栈中),指向数据在堆中的存放位置

引用类型对象的数据部分始终存放在堆里,值类型对象、或引用类型数据的引用部分可以存放在堆里,也可以放在栈里,这依赖于实际环境。

 

值参数传递的是拷贝的值;

引用参数必须在方法的声明和调用中都使用ref修饰符,传递的是引用的内存位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值