Home > Java > javaTutorial > Where Are Java Static Members Stored in Memory?

Where Are Java Static Members Stored in Memory?

Susan Sarandon
Release: 2024-12-04 08:37:11
Original
440 people have browsed it

Where Are Java Static Members Stored in Memory?

Where in Memory are Static Members Stored in Java?

Static methods and variables, such as those demonstrated in the provided Java code snippet, are stored in the PermGen section of the heap memory in Oracle's Hotspot JVM and others based on it. PermGen holds meta-data, including class-related data.

Storing Mechanisms:

  • Static variables: Only their technical values (primitives or references) are stored in PermGen. If a static variable references an object, the object itself resides in standard heap areas, not PermGen.
  • Static methods: All methods, including static ones, occupy space in PermGen as part of reflection data.

Important Notes:

  • PermGen is only used for metadata; static fields are stored in the regular heap.
  • Eclipse OpenJ9 and other JVMs may not have PermGen or Metaspace.
  • Relying on finalize() for garbage collection is unreliable. It's up to the JVM to determine garbage collection timing and eligible objects.
  • Setting a static variable to null alone may not guarantee object removal from the heap.
  • How code and data are stored can vary depending on the JVM implementation and version.

The above is the detailed content of Where Are Java Static Members Stored in Memory?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template