静态代码块
:
需求:类一加载,需要做一些动作,不一定需要对象。
学习目标:必须了解加载的顺序。
特点:随着类的加载而执行,而且仅执行一次。
作用:给类进行初始化。
class Demo
{
static int x=9;//静态变量有两次初始化。一次是默认初始化。一次是显示初始化。
static//静态代码块。在静态变量显示初始化以后再执行。
{
System.out.println("类一加载就执行的静态代码块..."+x);
}
static void show()
{
System.out.println("show ");
}
}
public class test {
public static void main(String[] args)
{
Demo.show();
Demo.show();
Demo.show();
}
}
运行结果:
类一加载就执行的静态代码块…9
show
show
show
class Demo
{
int x=4;
{ //构造代码块。只要创建对象,就会被调用。给所有对象初始化,构造函数只给对应的对应的对象针对性的初始化。
// 这里面可以定义不同构造函数的共性代码。
System.out.println("code run"+x);
}
Demo()
{
System.out.println("demo run");
}
Demo(int x)
{
System.out.println("demo run"+x);
}
}
public class test {
public static void main(String[] args)
{
new Demo();
new Demo(5);
{//局部代码块。
int x=5;
System.out.println("局部代码块");
}
}
}
构造代码块
构造代码块。只要创建对象,就会被调用。给所有对象初始化,构造函数只给对应的对应的对象针对性的初始化。这里面可以定义不同构造函数的共性代码。
局部代码块
作用:就可以控制局部变量的生命周期。