日期:2014-05-20  浏览次数:21083 次

静态方法与非静态方法的内存分配与性能
class   A1
{
private   String   x;
private   String   y;
private   String   z;

public   String   X
{
get   {   return   x;   }
set   {   x   =   value;   }
}

public   String   Y
{
get   {   return   y;   }
set   {   y   =   value;   }
}

public   String   Z
{
get   {   return   z;   }
set   {   z   =   value;   }
}

public   String   Method1()
{
return   X   +   Y   +   Z;
}
}

下面把A1改为

class   A2
{
private   String   x;
private   String   y;
private   String   z;

public   String   X
{
get   {   return   x;   }
set   {   x   =   value;   }
}

public   String   Y
{
get   {   return   y;   }
set   {   y   =   value;   }
}

public   String   Z
{
get   {   return   z;   }
set   {   z   =   value;   }
}

public   static   String   Method1(A2   a2)
{
return   a2.X   +   a2.Y   +   a2.Z;
}
}


现在实例化A1,A2各1000个,在内存分配上他们有什么不同吗,非静态方法的指令是不是每个对象都要自己维护?

------解决方案--------------------
方法只与类有关,与实例无关
不管有多少实例,方法是由一份拷贝
静态方法与非静态方法没有任何区别