静态代码块特点:
随着类的加载而执行。而且只执行一次。
静态代码块的作用:
1 用于给类初始化。(有些类不需要创建对象就要使用内容的)2 如果类里面全是静态成员,则完成初始化需要静态代码块。
静态代码块的例子:
class StaticCode
{
static //静态代码块
{
System.out.println("hawk");
}
void show()
{
System.out.println("show run");
}
}
class StaticCodeDemo
{
public static void main(String[] args)
{
new StaticCode().show();
new StaticCode().show();
}
}
输出:
可以看出,虽然定义了2个StaticCode对象,但静态代码块只执行一次。
我们接下来再看一个例子来体现静态代码块的作用:
//静态代码块的作用
class StaticCode
{
static int num;
static //用于对静态成员进行初始化
{
num = 10;
num *= 3;
System.out.println("hawk");
}
static void show()
{
System.out.println(num);
}
}
class StaticCodeDemo
{
public static void main(String[] args)
{
StaticCode.show();
}
}
与main函数的执行顺序:
//与main函数的执行顺序
class StaticCodeDemo
{
static
{
System.out.println("a");
}
public static void main(String[] args)
{
System.out.println("b");
}
}
输出:
可以看出静态代码块是优先于main函数执行的,因为它是跟着类的加载而执行的。