如果我有一个具有巨大方法O
的对象f()
,并且我将10000个O
示例加载到内存中。是否有10000个f()
例子加载到内存中?如果是这样,这是否意味着如果可能的话,我会通过使这个函数保持静态来节省内存?
答案 0 :(得分:9)
实例方法被加载到JVM中的方法区域。它被加载一次,但是每次调用f()都会有很多堆栈,以跟踪自己的局部变量值。
答案 1 :(得分:6)
没有。加载方法只有一个实例。
答案 2 :(得分:2)
实例方法只是一个模板,在类中定义(不是在每个实例中)。你不会通过使内存静态来节省内存。
答案 3 :(得分:2)
没有。方法不是实例的一部分;他们是课程的一部分。重复每个实例的代码是没有意义的(因为它永远不会改变)所以实现非常简单,比那更聪明。