根据程序中的内存分配 enum ,struct,union , 类, Interface 之间的区别以及它们之间的关系
According to memory allocation in program what is different between enum ,struct,union , classes, Interface and its relation between them
我对 enum、struct、union 的内存分配有点困惑, 类, Interface 也清楚我的概念,枚举、联合和结构之间哪个更好,这意味着当我使用这些
此答案属于 Java:
如果您的问题有意义,Java 中的这些构造的内存分配没有区别。
- 枚举实例在堆中分配。 (
enum
是 Java 中的引用类型。)
- classes 的实例分配在堆中。
- 严格来说,接口实例不存在。接口的实例实际上是实现接口的 class 的实例。 (它可能是一个匿名 class ... 但它仍然是一个 class。)
- Java 没有
union
或 struct
数据类型。
以上包含小"white lie"。事实上,最近的一些 JVM JIT 编译器能够推断出正在创建的对象具有与当前方法调用相对应的生命周期。然后他们可以在堆栈帧而不是堆上分配对象。然而,这对程序/程序员来说是透明的。
我对 enum、struct、union 的内存分配有点困惑, 类, Interface 也清楚我的概念,枚举、联合和结构之间哪个更好,这意味着当我使用这些
此答案属于 Java:
如果您的问题有意义,Java 中的这些构造的内存分配没有区别。
- 枚举实例在堆中分配。 (
enum
是 Java 中的引用类型。) - classes 的实例分配在堆中。
- 严格来说,接口实例不存在。接口的实例实际上是实现接口的 class 的实例。 (它可能是一个匿名 class ... 但它仍然是一个 class。)
- Java 没有
union
或struct
数据类型。
以上包含小"white lie"。事实上,最近的一些 JVM JIT 编译器能够推断出正在创建的对象具有与当前方法调用相对应的生命周期。然后他们可以在堆栈帧而不是堆上分配对象。然而,这对程序/程序员来说是透明的。