静态代码块
/*
静态代码块:随着类的加载就执行,只执行一次,优先于main函数执行
*/
class Test
{
static{
System.out.println("C");
}
public static void show(){
System.out.println("show");
}
}
class Test4
{
static {
System.out.println("A");
}
public static void main(String[] args)
{
System.out.println("Hello World!");
Test test = null; //此处不执行Test的静态代码块,因为并没有实例化对象,没有进行类的加载
new Test();
Test t = new Test();
Test.show();
}
static{
System.out.println("B");
}
}
输出结果:
构造代码块
/*
构造代码块:对象以创建就执行,且优先于构造函数执行
构造代码块可以对所有对象进行初始化
构造函数只能针对特定的对象进行初始化
*/
class Person
{
String name;
int age;
//构造代码块
{
System.out.println("构造代码块");
}
Person(){
System.out.println("构造函数");}
}
class Test5
{
public static void main(String[] args)
{
Person ren1 = new Person();
Person ren2 = new Person();
//System.out.println("Hello World!");
}
}
输出结果:构造代码块
构造函数
构造代码块
构造函数