1、为什么要用静态代码 随着类的加载而执行,而且只执行一次,不需要每次调用这个变量都给它赋值
2、静态代码块是什么 静态代码块优先级高于非静态代码块,静态代码块要先执行,只执行一次,执行完即销毁。
代码实现
package com.staticTest;
import java.nio.charset.CoderMalfunctionError;
public class BlockTest {
static {
System.out.println("BlockTest静态代码块执行");
}
{
System.out.println("BlockTest构造");
}
public BlockTest(){
System.out.println("BlockTest无参构造方法");
}
public static void main(String[] args) {
System.out.println("main");
Coder c = new Coder();
Coder c2 = new Coder();
Coder c3 = new Coder();
Coder c4 = new Coder();
Coder c5 = new Coder();
Coder c6 = new Coder();
Coder c7 = new Coder();
BlockTest c8 = new BlockTest();
BlockTest c9 = new BlockTest();
}
}
class Coder {
static {
System.out.println("coder静态代码");
}
{
System.out.println("Coder构造代码块执行");
}
public Coder(){
System.out.println("coder无参构造执行");
}
}
结果:
BlockTest静态代码块执行
main
coder静态代码
Coder构造代码块执行
coder无参构造执行
Coder构造代码块执行
coder无参构造执行
Coder构造代码块执行
coder无参构造执行
Coder构造代码块执行
coder无参构造执行
Coder构造代码块执行
coder无参构造执行
Coder构造代码块执行
coder无参构造执行
Coder构造代码块执行
coder无参构造执行
BlockTest构造
BlockTest无参构造方法
BlockTest构造
BlockTest无参构造方法