一个对象调用一个方法内存图

面向对象-对象内存图

 

通过上图,我们可以理解,在栈内存中运行的方法,遵循"先进后出,后进先出"的原则。变量p指向堆内存中的空间,寻找方法信息,去执行该方法。但是,这里依然有问题存在。创建多个对象时,如果每个对象内部都保存一份方法信息,这就非常浪费内存了,因为所有对象的方法信息都是一样的。那么如何解决这个问题呢?请看如下图解。
 

两个对象,调用同一方法内存图

面向对象-对象内存图

对象调用方法时,根据对象中方法标记(地址值),去类中寻找方法信息。这样哪怕是多个对象,方法信息只保存一份,节约内存空间。

相关文章:

  • 2021-04-18
  • 2021-09-13
  • 2022-01-09
  • 2021-11-23
  • 2021-04-15
  • 2021-11-21
猜你喜欢
  • 2021-04-01
  • 2021-11-28
  • 2021-04-10
  • 2021-05-01
  • 2021-12-06
  • 2021-11-22
  • 2021-05-01
相关资源
相似解决方案