Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 623
Jeet Avatar asked Mar 26 '26 00:03

Jeet


2 Answers

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.

like image 200
dave_thompson_085 Avatar answered Mar 27 '26 12:03

dave_thompson_085


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

like image 40
TheLostMind Avatar answered Mar 27 '26 12:03

TheLostMind



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!