是否将实例方法加载到每个对象或每个类的内存中?

时间:2011-02-17 16:00:59

标签: java memory memory-management static

如果我有一个具有巨大方法O的对象f(),并且我将10000个O示例加载到内存中。是否有10000个f()例子加载到内存中?如果是这样,这是否意味着如果可能的话,我会通过使这个函数保持静态来节省内存?

4 个答案:

答案 0 :(得分:9)

实例方法被加载到JVM中的方法区域。它被加载一次,但是每次调用f()都会有很多堆栈,以跟踪自己的局部变量值。

答案 1 :(得分:6)

没有。加载方法只有一个实例。

答案 2 :(得分:2)

实例方法只是一个模板,在类中定义(不是在每个实例中)。你不会通过使内存静态来节省内存。

答案 3 :(得分:2)

没有。方法不是实例的一部分;他们是课程的一部分。重复每个实例的代码是没有意义的(因为它永远不会改变)所以实现非常简单,比那更聪明。