type name;
对于引用类型,这会通知编译器您将使用 name 来引用类型为 type 的数据。对于原始变量,此声明还为变量保留适当的内存量。
以上是我从 oracle 文档 java 教程中读到的确切内容。
我的问题是,什么时候进行内存分配。在编译时或运行时? 原始变量和引用变量的情况相同吗?
最佳答案
运行时。
由于Java由VM
执行,因此在编译时分配内存没有意义。
“局部变量”,如函数参数或函数内的变量仅在堆栈(原始值或引用)。对象总是在堆上创建。
但是:有关内存管理(分配、释放、垃圾收集)的所有内容均依赖于 JVM
实现,并且仅发生 在运行时(当然除了原始和字符串常量)。
关于java - 原始变量和引用变量的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12051047/