一、静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存。
二、静态方法在堆上分配内存,实例方法在堆栈上。
三、实例方法需要先创建实例才可以调用,比较麻烦,静态方法不用,比较简单。
四 静态方法内调用的方法必须是静态的,实例方法则都可以
如下声明两个类
public static class A:
{
//...
public static void doSomething()
{
//...
}
}
public class B
{
//...
public void doSomething()
{
//...
}
}
使用方法如下:
A:
A.doSomething();
B:
B instB = new B();
instB.doSomething();
那么这两种方案在内存申请方面有什么样的区别 执行效率又如何
不能简单的说A和B谁占内存小,A程序加载就在内存中驻留,会占一定的内存,B是你实例化的时候才分配内存
1:这个方法程序调用的多 当然是A更省资源。如果用B每次都得创建实例,用完还得销毁当然浪费资源
2:这个方法程序调用的很少,那还是B省资源,只是用到的时候占内存,不用不占内存,比起A来说省资源