java 静态代码块 静态方法区别
静态代码块是主动执行的,在项目启动的时候就初始化, 静态方法在类加载的时候 就已经加载 可以用类名直接调用,两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.
代码执行顺序
class Parent {
{
System.out.println("parent block");//3
}
static {
System.out.println("parent static block");//1
}
public Parent() {
System.out.println("parent constructor");//4
}
}
class Child extends Parent {
{
System.out.println("child block");//5
}
static {
System.out.println("child static block");//2
}
public Child() {
System.out.println("child constructor");//6
}
}
public class Test{
public static void main(String[] args) {
new Child();
}
}
输出结果:
parent static block
child static block
parent block
parent constructor
child block
child constructor
对象的初始化顺序:
执行父类静态的内容
执行子类的静态的内容
父类非静态代码块,接着执行父类的构造方法。
子类非静态代码块,接着执行子类的构造方法。
总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法
欢迎加入学习交流群569772982,大家一起学习交流。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。