java对象的静态域保存在静态存储空间里,那么静态方法也保存在静态存储空间里么?除此以外的其他部分(非静态域和非静态方法都在堆上)?

解决方案 »

  1.   

    static的东西在类被编译的时候就会加载 不用对象也可调用 始终存在直到整个程序结束
    被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
      

  2.   

    可能我描述的不很清楚,:)。编程思想上说,java中的对象索引变量和原始类型变量都是在栈空间上分配的,而类的对象是在堆上分配的。但是类的成员变量一般就是索引变量和原始类型变量,所以类的对象空间究竟是怎么分配的呢,还有类的方法呢?