Reputation: 5659
Where does the identifiers or variable name gets stored in java? I understand that objects get stored in heap and variable gets store in heap or stack depending on the type and scope of variable. Can we debug or write any program to confirm it?
Thanks & Regards
Upvotes: 3
Views: 1428
Reputation: 39029
Names of fields are stored as part of the class metadata, in formerly-PermGen now-Metaspace.
Array elements don't have names, only numbers. (Cue Patrick McGoohan.)
Names of method and constructor parameters and local variables and handler parameters are stored only in the debug-symbols info in the classfile, if that option is selected. They aren't needed by the JVM because the compiler has mapped them to stack-frame slot numbers used in the bytecode.
Upvotes: 4
Reputation: 8357
Variable names are stored in method area of permanent generation. Object are always stored in the Heap, but object reference stored in the stack.
Upvotes: 0
Reputation: 36304
Variable names are stored in "method area" (which is part of the permgen.) along with other class meta-data.
There is a special area to hold class meta-data called method area. This is part of permgen (which was in heap before java 8) now it has been moved to metaspace
Upvotes: 2