java中的实例方法

时间:2017-09-26 20:36:54

标签: java

确实,每个对象都有自己的实例变量副本。但是,像静态成员一样,实例方法只有一个副本吗?如果是,那么它在内存中的位置?

3 个答案:

答案 0 :(得分:1)

内存中只需要一个实例方法的副本。当一个实例方法被调用时,会有一个"这个"变量隐式包含在堆栈中。 "这" variable允许实例方法访问调用它的对象实例的实例变量。

类,包括它们的方法,通常会在长期堆中结束,因为它们被垃圾收集的情况并不常见。

答案 1 :(得分:0)

  

但是,像静态成员一样,只有一个副本   实例方法?

是的,无论实例数量和方法是否为静态,所有对象只有一个副本。

  

如果是,那么它在内存中的位置?

堆。

答案 2 :(得分:0)

是。 逻辑上,一个类的每个实例中的方法共享一个算法。内存的行为方式类似。每个对象都调用一个方法算法,并且在方法调用期间将所需的值临时推送到堆栈。

Method是一组要遵循的指令,而不是数据结构。它不应该专门分配内存。

方法调用指令分别存储在RAM中,与其他应用程序指令相同。这不是Java内存分配过程的一部分。