我们声明静态时分配的内存在哪里?

Meh*_*her 6 java android

可能重复:
java中的静态分配 - 堆,堆栈和永久生成

它的一个小混乱...定义静态到类,方法和变量.在这三种情况下,因此分配内存.?我的老板熟悉C,他说只有变量在堆内存中,其余的(静态类和静态方法)将保留在主内存中.是真的吗?任何解释.?

在android中使用静态类和静态方法是一个最佳实践?

Kum*_*tra 5

试试这个,

static members are stored in Method Area.
Run Code Online (Sandbox Code Playgroud)

类实例和数组存储在堆内存中.堆内存也称为共享内存.因为这是多个线程共享相同数据的地方.

Non-heap Memory
Run Code Online (Sandbox Code Playgroud)

它包括‘Method Area’内部处理所需的内存和其他内存.所以这里的主要参与者是'方法区'.

Method Area
Run Code Online (Sandbox Code Playgroud)

如最后一行所示,方法区域是非堆内存(特殊堆区域)的一部分.它存储每类结构,方法和构造函数的代码.每类结构意味着运行时常量和static fields.

上面三个(堆内存,非堆内存和方法区域)是内存和JVM的主要术语.

类实例和数组存储在堆内存中.堆内存也称为共享内存.因为这是多个线程共享相同数据的地方.