- Joined
- Aug 6, 2009
- Messages
- 2,133
- Reaction score
- 433
Okay so when you create an object (other than int, byte, etc) the pointer is stored in stack, and actual object is stored in heap.
You create new object and new pointer is created in stack and object itself in heap.
Now when you call a method on object lets say with two int parameters, two ints are being stored in stack along with other local variables. Then you call same method on other and other method. So in stack you have two pointers to objects, and six its because of 3 methods that were called.
When methods are done doing their job, their local variables are deleted from stack. So if two methods finished their job and 3rd one is still working, you call method on an object again where does it put local variables for called method? Above last called method variables or in free space with highest address?
Or does garbage collector takes care of that and decides where to put vars?
P.S. This isn't related to any specific language but more to managed languages overall
You create new object and new pointer is created in stack and object itself in heap.
Now when you call a method on object lets say with two int parameters, two ints are being stored in stack along with other local variables. Then you call same method on other and other method. So in stack you have two pointers to objects, and six its because of 3 methods that were called.
When methods are done doing their job, their local variables are deleted from stack. So if two methods finished their job and 3rd one is still working, you call method on an object again where does it put local variables for called method? Above last called method variables or in free space with highest address?
method locals are here cause method is not done yet
method call locals were here
method call locals were here
pointer2
pointer1
Or does garbage collector takes care of that and decides where to put vars?
P.S. This isn't related to any specific language but more to managed languages overall
Last edited:

