dynamic - 静态分配与动态分配与自动分配

标签 dynamic static oop memory-management

静态分配、动态分配和自动分配有什么区别?

最佳答案

会有特定于语言的细节,但总体思路是:

  • 静态:在程序启动时分配,存在于程序的整个生命周期
  • 自动:在进入块时分配,在该块的持续时间内存在

  • 动态分配需要更多解释:它是在您分配时分配的(例如,使用“new XXX”之类的东西)。在(大多数实现)C++ 中,它会一直存在,直到您明确删除它。对于大多数较新的语言(例如 Java、C#),它会一直存在,直到垃圾收集器确定它不再可访问,届时它将被自动销毁。

    并非所有语言都具有所有三种分配形式。在某些情况下(例如 Java),即使支持一种分配形式,也存在一些限制,例如允许对内置类型进行自动分配,但需要对对象类型(即类的实例)进行动态分配。

    关于dynamic - 静态分配与动态分配与自动分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534999/

    相关文章:

    ios - 如何在 Swift 2 中以编程方式在 ImageView 上显示动态标签

    php - 使用 Javascript 动态更改 PHP 值

    java - 静态变量初始化java

    C++在静态函数中获取类类型

    python - 以对象表示的数据

    java - 单例模式: getInstance() vs Passing the singleton object?

    arrays - 如何将值传递给数组然后遍历数据集

    c# - C#4.0中如何调用动态类型的静态方法?

    c# - 是在C#中的不同线程之间共享的静态类

    php mysql查询条件oop