美文网首页
2024-01-14 栈堆

2024-01-14 栈堆

作者: 午字横 | 来源:发表于2024-01-13 13:27 被阅读0次

1.类和结构有以下几个基本的不同点:

  1. 类是引用类型,结构是值类型。
  2. 结构不支持继承。
  3. 结构不能声明默认的构造函数。不允许显式的无参构造函数,允许显示的有参构造器
  4. 结构体中声明的字段无法赋予初值,类可以
  5. 类的对象是存储在堆空间中,结构存储在栈中。

.Net下的栈(Stack)和托管堆(Heap)(简称堆)

image.png
  • 值类型只需要一段单独的内存,用于存储实际的数据(单独定义的时候放在栈中)。
  • 引用类型需要两段内存。

- 第一段存储实际的数据,它总是位于堆中。
- 第二段是一个引用,指向数据在堆中的存放位置。

值类型与引用类型的区别

值类型与引用类型都继承自Systerm.Object类。不同之处,几乎所有的引用类型都是直接从Systerm.Object继承,而值类型则是继承Systerm.Object的子类Systerm.ValueType类。
我们在给引用类型的变量赋值的时候,其实只是赋值了对象的引用;而给值类型变量赋值的时候是创建了一个副本(说通俗点,就是克隆了一个变量)。

public class Lesson : MonoBehaviour
{
    void Start()
    {
        Student_01 stu1=new Student_01("1号");
        Student_01 stu11=stu1;
        stu1.name = "11号";
        Debug.LogError(stu11.name);  
        Debug.LogError(stu1.name);   //类是引用类型,给引用类型的变量赋值的时候,其实只是赋值了对象的引用。 stu1和stu11都是对同一块堆地址的引用;


        Student_02 stu2 = new Student_02("2号");
        Student_02 stu22 = stu2;
        stu22.name = "22号";
        Debug.LogError(stu22.name);
        Debug.LogError(stu2.name);  //struct是值类型,给值类型变量赋值的时候是创建了一个副本(说通俗点,就是克隆了一个变量)。
    }

    
}
public class Student_01
{
    public Student_01(string str){ name = str; }

    public string name;
}
public struct Student_02
{
    public Student_02(string str) { name = str; }
    public string name;
}

2024-01-14

相关文章

  • 10.11java中的堆和栈

    java高级-堆和栈 java堆 /栈 栈内存 / 堆内存的区别 1. java堆 /栈 2. 栈内存 / 堆内存的区别

  • 堆 栈

    “堆:堆是用来容纳应用程序动态分配的内存区域,当程序使用malloc或new分配内存时,得到的内存来自堆里。堆通常...

  • 堆、栈

    在了解堆和栈的概念之前,首先明确下数据类型的分类。 基本数据类型:Number、String、Boolean、un...

  • 栈 堆

    1、管理方式不同;对于栈来讲,是由编译器自动管理;对于堆来说,释放工作由程序员控制,容易产生内存泄漏memory ...

  • 堆 & 栈

    1.管理方式 堆,由程序员控制释放,容易产生memory leak。 栈,由编译器自动管理,无需人工控制。 2.申...

  • 堆、栈

    栈, 也叫堆栈 堆和栈的区别: 堆栈空间分配区别:1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,...

  • 栈 堆

  • 栈堆

    慢慢完善最近时间有点紧~一个很有意思的描述大家就简单的理解了(程序员段子):栈是吃了吐 堆是吃了拉(堆是吃了拉,先...

  • 堆&栈

    (1)栈内存用来存储局部变量和方法调用。 (2)堆内存用来存储Java中的对象。无论是成员变量,局部变量,还是类变...

  • js/jquery 学习笔记

    理解JavaScript中的堆和栈 这里先说两个概念:1、堆(heap)2、栈(stack)堆是堆内存的简称。栈是...

网友评论

      本文标题:2024-01-14 栈堆

      本文链接:https://www.haomeiwen.com/subject/irifodtx.html