有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的实例方法

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


共 (3) 个答案

  1. # 1 楼答案

    对。 从逻辑上讲,一个类的每个实例中的一个方法共享一个算法。记忆的行为方式类似。每个对象调用一个方法算法,在方法调用期间,所需的值被临时推送到堆栈中

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

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

  2. # 2 楼答案

    内存中只需要实例方法的一个副本。调用实例方法时,堆栈中将隐式包含一个“this”变量。“this”变量允许实例方法访问调用它的对象实例的实例变量

    类,包括它们的方法,通常会在长寿命堆中结束,因为它们很少被垃圾收集

  3. # 3 楼答案

    But is it true that like static members, there is only one copy of instance methods?

    是的,不管实例的数量和方法是否是静态的,所有对象都只有一个副本

    If yes, then where it resides in memory?