java - 静态方法内存分配

标签 java static static-methods static-members

我们有两个分类 heap 和 stack 。创建对象时,对象的内存存储在堆中。如果类有静态方法,可以使用类名调用怎么办。如果未创建对象,那么它将如何分配内存,如果创建了,它将在哪里分配内存?

最佳答案

这取决于JVM,但静态字段通常存储在堆上的一个特殊对象中。 (你可以在堆转储中看到它)当类加载器被卸载时,它的类和它们的静态“对象”/字段也被清理。

静态“对象”的唯一不同之处在于您无法获得对它的引用。 (但是你可以使用反射来访问字段)

关于java - 静态方法内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7673359/

相关文章:

java - 正则表达式负向预测,意外结果

c++ - 为什么非成员静态 constexpr 变量不隐式内联?

c++派生类型的自动工厂注册

java - 从其他类引用 MainActivity 中的静态上下文是否不好?

php - 在 mysqli 函数中使用公共(public)静态函数

java - 静态方法是否有利于可扩展性?

Java泛型覆盖方法

java - jSch 中 b/w ChannelSftp 的 lstat() 和 stat() 方法的区别

java - 在Edittext上自动计算

node.js - 使用 node.js 提供静态 gzip 文件