值类型和引用类型的定义及区别

一.值类型、引用类型的定义

值类型:直接访问数据的值。

引用类型:访问数据的存储地址。

二.值类型与引用类型

值类型类似于数组

引用类型类似于链表

三.值类型与引用类型主的主要类型

值类型:基本数据类型(int、float、double等)、结构数据类型、枚举数据类型。

引用类型:类、接口、数组、字符串和委托。

四.值类型与引用类型的不同点

1.内存分配不同:值类型通常被分配到栈上,它的变量直接包含变量的实例,使用效率比较高。

引用类型分配在堆上,它的变量通常会包含一个指向实例的指针,变量通过该指针来引用实例。

2.默认值不同:值类型默认情况下自动初始化为0。引用类型默认情况下为null。

3.继承类不同:值类型继承自System.ValueType。引用类型继承自System.Object。

4.回收方法:值类型不由GC控制,作用域结束时自行释放。引用类型由GC完成。

5.继承性不同:值类型是密封的,因此不能用作基类。引用类型一般有继承性

猜你喜欢

转载自blog.csdn.net/qq_66312646/article/details/125714721