读书人

对静态方法和静态域不太明白,哪位高手

发布时间: 2012-02-02 23:57:14 作者: rapoo

对静态方法和静态域不太明白,谁能指点一下?
对静态域和静态方法,我还是觉的不太明白.
例如 Student 这个类, 里面的 ID 是一个静态域,在Student的构造函数里面加入类似 ID++; 的语句
这样就可以实现每生成一个Student的实例,让ID加1,
同样Student再加入一个静态方法,
public static void setNum(int i)
{
ID = i;
}
就可以控制ID的初始值了,如setNum(10000),则ID从10001开始算.

我的疑问在于, 一般的类在在生成实例之后,在内存中分配空间,通过实例来调用方法或域,那么对于静态域和静态方法,
它们是在何时分配内存空间,什么时候才能调用?


[解决办法]
静态域是在类加载的时候分配空间,静态方法是在类加载的时候加载。
[解决办法]
对于静态域和静态方法, 任何时候都可能调用,调用时java虚拟机会先为静态域分配空间
[解决办法]
当你声明的时候,比如你一出现Student这么个信号,如果有static域\变量\方法它就会加载类,并在这个时候对其操作(初始化或者操作域)

读书人网 >J2SE开发

热点推荐