package com.aop8.classload;
class StaticCode {
int age;
// static 代码块
static {
System.out.println("111--static ");
}
// 构造代码块
{
System.out.println("22 ");
}
// 构造函数
StaticCode(int age) {
this.age = age;
System.out.println("constructor: " + age + ",");
}
void show() {
// 局部代码块
{
int age = 30;
}
System.out.println("show: age=" + age + ",");
}
}
public class StaticCodeDemo {
public static void main(String[] args) {
StaticCode p1 = new StaticCode(20);
p1.show();
System.out.println("========================");
StaticCode p2 = new StaticCode(20);
}
}
运行结果:
111--static
22
constructor: 20,
show: age=20,
========================
22
constructor: 20,
总结:
static代码块 随着类的加载,只加载一次。作用是初始化类。
构造代码块,可以给所有对象进行初始化的。创建几个对象就调用几次,是给对象进行通用性的初始化。
构造函数 是给对应的对象进行针对性的初始化。
局部代码块 限定函数中变量的生命周期,age=30局部代码执行完。自动释放掉了。