其中静态对象存储在java中

nav*_*yad 5 java oop

我正在读一本书"Thinking in Java",它说对象存储在堆上,静态变量存储在一些固定的位置,比如静态存储,这样它们就可以在整个时间程序中运行.

class Myclass{

static int x =0;        //stored on static storage
Myclass obj = new Myclass(); //stored on heap

}
Run Code Online (Sandbox Code Playgroud)

虽然制作一个对象,但就OOPS而言,静态不是一个好主意.把它搁置一段时间.有我的问题

  1. 在哪里存储声明为static的对象.
  2. 在这种情况下,JVM如何进行实例化.
    class Myclass { static Myclass obj = new Myclass(); //no man's land }

kos*_*osa 3

所有静态内容都将在类加载/启动时创建 并存储在特殊位置(很可能是永久代的一部分,根据实现而有所不同)。

对于第二个示例,当Myclass加载您的内容时,将创建/实例化它的静态内容。

教程可以为您提供高级概述。