数据类型的分类

数据类型分为值类型和引用类型

值类型为(int,double,bool)
引用类型为(string,数组,class)

内存分配模式

分配模式主要分为两种:栈和堆

值类型:

下面我们用一个图来看一下:
数据类型的分类,及内存分配模式
那么这个a应该等于什么呢?是3还是20?
首先,我们用
栈和堆的概念来解释一下

数据类型的分类,及内存分配模式
当我们改变b的时候,b=a就会随之改变,所以z002会随之改变
数据类型的分类,及内存分配模式
但是z001并没有改变,所以,输出的a=3;
数据类型的分类,及内存分配模式

引用类型:

下面我们用一个图来看一下:
数据类型的分类,及内存分配模式
那么,输出的Name 跟Age会是什么呢?
我们来看看栈和堆会告诉我们什么,数据类型的分类,及内存分配模式
因为Person p,Person p1共用的是一个地址,所以,在Person p1发生改变的同时,Person p 也发生了改变。所以,输出如下:
数据类型的分类,及内存分配模式
当Person p为null的时候,就会出现未将对象引用设置到对象的实例的错误,

黄金定律:引用类型一定分配在堆上
值类型的局部变量分布在栈上,而类的值类型成员分布在堆上。

相关文章:

  • 2021-07-17
  • 2021-07-10
  • 2022-12-23
  • 2021-11-16
  • 2021-08-30
  • 2021-09-08
  • 2021-11-02
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
  • 2021-06-16
  • 2021-06-04
  • 2021-10-19
  • 2021-07-18
相关资源
相似解决方案