This week's book giveaway is in the Kotlin forum.
We're giving away four copies of Kotlin in Action and have Dmitry Jemerov & Svetlana Isakova on-line!
See this thread for details.
Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

memory map of objects  RSS feed

 
Ravi Gupta
Ranch Hand
Posts: 38
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
We all know that objects have their own copy of instance variables. But what about methods ? Do the methods that are non-static, occupy memory for every object that is created, i.e. does Java make a distinction between memory maps of instance variables and instance methods or not ? The question may seem too naive but i could not find this fact explicitly cited in any of the books on Java that i have and i happen to have a lot of them.
 
Campbell Ritchie
Marshal
Posts: 55745
163
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Don't know.
You need to try going through the Java website. Start here with the JVM documentation.
 
Ernest Friedman-Hill
author and iconoclast
Sheriff
Posts: 24217
38
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No, each method does not contribute to the size of each object; methods, and information about methods, is stored just once.

There are many ways to implement this, and the details of the implementation change from time to time, but all are variations on the classic vtbl approach. Every object does have a reference to a class-wide data structure. Part of that data structure is a list of methods and reference to the code for each method. To invoke a method on an object, the VM follows the chain of references from the object, to the class, to the code for the method.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!