class Test{
  static string f;
  static void fun()
}Test中的方法和field都是静态的我在A类中这么用Test.f
B类中Test.f  请问一下 这时候Test的内存是如何分配的?
一共创建了几个对象?

解决方案 »

  1.   

    只占一份。我发一个代码给你去测试一下你看一下你就知道
    package ch5;public class C1 { static int x=1;
    int y=2;
    public void ss(){
    C1 c1=new C1();
    C1 c2=new C1();
    c1.x=10;
    c2.x=15;
    c1.y=10;
    c2.y=15;
    System.out.println(c1.x+","+c2.x);
    System.out.println(c1.y+","+c2.y);
    }
    public static void main(String[] args) {
    // TODO 自动生成方法存根
        C1 c= new C1();
        c.ss();
    }}
      

  2.   

    http://www.cnblogs.com/wodepp2011/archive/2011/06/29/2151302.html
      

  3.   

    域 就是 field,就是字段,就是你的f不会创建Test对象的
      

  4.   

    没有创建对象 ,
    A类中这么用Test.f
    B类中Test.f  
    在Test中第一次使用时,jvm把Test通过类加载器加载进来,放到静态方法区,属于公用的 
      

  5.   

    哦。 好像懂了点。  我还想请教一下啊  。 一个 类 里面都是 static 的成员他会占用多少内存 假设该class2000行代码
      

  6.   


    不确定,不同的jvm不一样的
      

  7.   

    这样更容易理解
    static :类变量,一个类拥有的变量,不是每个实例拥有的变量
    因此,只有一份