1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java static(三) - 静态代码块

Java static(三) - 静态代码块

时间:2021-06-03 00:15:50

相关推荐

Java static(三) - 静态代码块

静态代码块

static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内

JVM加载类时会执行这些静态代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们

每个静态代码块只会被执行一次实例说明

// 父类public class ParentStatic {private static String pstr = "父类静态变量";static {System.out.println("执行父类静态代码块:" + pstr);}public ParentStatic() {System.out.println("执行父类构造方法。。。");}}// 子类public class ChildStatic extends ParentStatic {private static String cstr = "子类静态变量";static {System.out.println("执行子类静态代码块:" + cstr);}public ChildStatic() {System.out.println("执行子类构造方法。。。");}}

public class StaticBlockTest {public static void main(String[] args) {ChildStatic childStatic1 = new ChildStatic();ChildStatic childStatic2 = new ChildStatic();System.out.println("类静态代码块只会在加载该类时执行一次。。。");}}

运行结果:

运行过程:

执行ChildStatic childStatic1 = new ChildStatic();先要加载ChildStatic类,加载时发现继承于类ParentStatic,转去加载父类JVM加载父类ParentStatic时,发现父类有静态代码块,便执行父类的静态代码块(父类有父类还会往上找父类静态)父类ParentStatic加载完成,继续加载子类ChildStatic,发现子类有静态代码块,执行子类静态代码块类ChildStatic加载完成,执行初始化new ChildStatic(),先调用父类构造函数,在调用子类构造函数执行ChildStatic childStatic2 = new ChildStatic(),由于此时子类ChildStatic已经加载过了,所以静态代码块不会再执行,直接初始化,调用父类构造函数,再调用子类构造函数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。