我读到“Java 中的每个对象都在堆中分配。”
我也知道“每个程序,对象都是由 Object 类继承的”,但我不确定类名。
那么如果我们的包含main方法的程序在Java虚拟机中也被object类继承了,是不是说明它也是一个对象呢? main 方法是否也在堆中分配?如果是,是否意味着 Java 中的所有内容都分配在堆中?
最佳答案
关于 run-time data areas 的 JVM 规范可能会有帮助。当您启动程序时,具有 main
方法的类由 JVM 的引导类加载器加载。 Java 类加载器将加载的每个类的方法添加到 JVM 的方法区,这是一个共享内存池,Java 类的所有可执行代码都存放在这里。然后它分配一个frame 来保存在main
方法中定义的变量;此帧是在堆栈上还是在堆上分配取决于实现。
关于java - main 方法是否也在堆中分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21521149/