值类型-引用类型

值类型:变量和数值都存储在栈空间(操作系统管理)
引用类型:变量存储在栈空间,数值存储在堆空间(垃圾回收器管理)

值类型(结构体)=:a=b a,b在栈上各有一块空间进行存储数值
引用类型(类)=:a=b a,b指向堆上同一块空间

嵌套:
1、可以在值类型中包含引用类型
2、可以在引用类型中包含值类型

值类型直接继承自ValueType,引用类型直接继承自Object
值类型的默认值为0,引用类型的默认值为null

装箱:把值类型转换为引用类型
拆箱:把引用类型转换为值类型
在这里插入图片描述
装箱:
1、内存分配:用来存储数值
2、完成实际数据的复制:之类型的数据复制到开辟的堆空间里
3、地址返回:返回的地址赋值为引用类型变量

拆箱:
1、检查实例:检查拆箱的引用类型是否为null,是则抛出异常;否则继续检查变量是否和拆箱后的类型是同一类型
2、地址返回:返回已装箱变量的实际数据部分的地址用来拷贝数据
3、数据复制:将托管堆中的实际数据复制到栈中

由于装箱拆箱存在数据复制,所以比较消耗资源。最好使用泛型进行编程

传参:值传递、引用传递
值传递:
1、值类型数据按值传递方式
特征:单向传递,形参改变,实参不变
2、引用类型数据按值传方式
特征:类似c传指针,让形参和实参指向同一个堆空间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
引用传递:
1、值类型数据按引用传递方法
2、引用类型数据按引用传递方式
使用关键字ref out:定义和调用必须显示的添加关键字ref out

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值