您的位置:首页 > 编程语言

静态代码块(static{})详解

2011-11-01 19:38 246 查看
静态代码块:即在类中的标有static修饰符的代码块,如:

static{
//代码
}
与一般代码块的异同:
相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,一般在代码块中对一些static变量进行赋值。
不同点:静态代码块在非静态代码块之前执行。静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。非静态代码块可在普通方法中定义;而静态代码块不行。

与静态方法的却别:
静态代码块在第一次初始化的时候被执行,静态方法在类加载的时候被加载,且必须需要主动调用才会执行。

执行顺序相关:
1、单个类的初始化顺序如下:为静态属性分配内存并赋值->执行静态代码块->为非静态属性分配内存并赋值->执行非静态代码块->构造函数。
2、有继承关系的类的初始化顺序如下:父静属->父静块->子静属->子静块->父非静属->父非静块->父构造->子非静属->子非静块->子构造。

static的一些使用注意事项:
1、静态方法只能调用同类中的其他静态成员(静态方法或是静态变量)。
2、静态方法不能使用this和super。因为静态方法不属于任何实例。
3、静态变量属于整个类,在类的方法中不能定义静态方法。

转自http://iamxi.iteye.com/blog/1106613
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息