Jeet
Jeet

Reputation: 5659

Java- Where does the variable name or Identifier gets stored, Stack or Heap?

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

Answers (3)

dave_thompson_085
dave_thompson_085

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

Dark Knight
Dark Knight

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

TheLostMind
TheLostMind

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

Related Questions