type name;
对于引用类型,这会通知编译器您将使用name来引用类型为type的数据。对于原始变量,此声明还为变量保留适当的内存量。
以上是我从oracle docs java教程中读到的确切行。
我的问题是,何时进行内存分配。在编译时或运行时? 原始变量和引用变量是否相同?
答案 0 :(得分:4)
运行系统。
由于 Java 由VM
执行,在编译时分配内存是没有意义的。
'局部变量'如函数参数或函数中的变量仅在'已分配'上堆栈(原始值或引用)。在堆上>创建总是。
但是:有关内存管理(分配,解除分配,垃圾回收)的所有内容都依赖于JVM
实现,只发生 在运行时(原语和字符串常量除外)当然。
答案 1 :(得分:2)
内存分配在运行时发生,并且引用类型和基元都需要存储分配。更准确地说,我无法理解它是什么意思memory allocation in compile time
(对于java
)。