确实每个对象都有自己的实例变量副本。但是,像静态成员一样,只有一个实例方法副本是真的吗?如果是,那么它驻留在内存中的位置?java中的实例方法
-5
A
回答
0
但的确,像静态成员一样,只有一个 实例方法的副本?
是的,无论实例的数量和方法是否为静态,对于所有对象只有一个副本。
如果是,那么它驻留在内存中?
堆。
1
只需要在内存中有一个实例方法的副本。当一个实例方法被调用时,会有一个隐含在栈中的“this”变量。 “this”变量允许实例方法访问调用它的对象实例的实例变量。
包括它们的方法在内的类通常会在长期存在的堆中结束,因为它们很少被垃圾收集。
0
是的。逻辑上,一个类的每个实例中的方法共享一个算法。内存的行为方式与此类似。每个对象调用一个方法算法,并且在方法调用期间将所需值推入临时堆栈。
方法是一组遵循的指令,而不是数据结构。它不应该专门分配内存。
方法调用指令分别存储在RAM中,与其他应用程序指令相同。这不是Java内存分配过程的一部分。
相关问题
- 1. Java实例方法
- 2. 实例方法JAVA中的同步
- 3. Java Nashorn实例化方法
- 4. 在java中的静态方法vs实例方法的决定?
- 5. 主要方法外的Java类实例
- 6. Java的实例方法调用
- 7. 调用实例方法的实例方法调用实例方法
- 8. 使用java中的方法实现的单实例
- 9. Java代码未执行实例方法
- 10. Java:实例化方法变量
- 11. 调用由实例名实例方法为字符串在Java
- 12. 取决于实例的实例方法
- 13. 无法实例类型的实例在Java中的Weka类
- 14. c#实例方法
- 15. 实例方法equals()
- 16. webapp实例方法
- 17. 从java中的另一个类更改实例的方法
- 18. 在Clojure中调用没有参数的Java实例方法
- 19. 如何访问在java中拥有一个方法的实例?
- 20. 覆盖Java中每个类实例的方法
- 21. 动态方法的实例?
- 22. 方法的多个实例?
- 23. 使用方法的实例
- 24. 静态方法是否可以调用Java中的实例方法
- 25. 访问类实例方法如实例方法
- 26. 在javascript中调用实例创建回调的实例方法
- 27. 如何在实例类中的实例上调用方法?
- 28. 在实例化线程中调用的实例方法
- 29. 用实例方法中的float替换实例?
- 30. Python中的静态和实例方法
[Java静态方法的内存模型]的可能重复(https://stackoverflow.com/questions/28100825/java-memory-model-for-static-methods) – Progman
每个对象都有自己的实例变量副本,并且实例方法。静态变量和静态成员以类别形式存在 – SkrewEverything
每个对象都有自己的实例变量副本,但不包含静态变量或任何方法。实例方法只有一个副本,但是在调用实例方法时,将拥有对象的引用放在堆栈上,以便运行时可以识别调用该方法的实例。 –