package com.test; public interface person { int test(); }
package com.test; public class father implements person{ private int i = test(); private static int j = cool(); static{ system.out.println("father静态代码块1"); } father(){ system.out.println("father无参构造方法..."); } father(string aa){ system.out.println("father带参构造方法..."); } static{ system.out.println("father静态代码块2"); } { system.out.println("father普通代码块1"); } private static int cool() { system.out.println("father静态赋值方法cool()"); return 0; } @override public int test() { system.out.println("father普通赋值方法test()"); return 0; } }
package com.test; public class son extends father { { system.out.println("son普通代码块1"); } private int i = test(); static{ system.out.println("son静态代码块1"); } private static int j = cool(); { system.out.println("son普通代码块2"); } public son(string aa) { system.out.println("son带参构造方法"); } public son() { system.out.println("son无参构造方法"); } static { system.out.println("son静态代码块2"); } @override public int test(){ system.out.println("son普通赋值 方法test()重写"); return 1; } public static int cool() { system.out.println("son静态赋值 方法cool()"); return 1; } public static void main(string[] args) { son s1 = new son(); system.out.println("==========================================="); son s2 = new son("aa"); system.out.println("==========================================="); father s3 = new son("bb"); } }
father静态赋值方法cool() father静态代码块1 father静态代码块2 son静态代码块1 son静态赋值 方法cool() son静态代码块2 son普通赋值 方法test()重写 father普通代码块1 father无参构造方法... son普通代码块1 son普通赋值 方法test()重写 son普通代码块2 son无参构造方法 =========================================== son普通赋值 方法test()重写 father普通代码块1 father无参构造方法... son普通代码块1 son普通赋值 方法test()重写 son普通代码块2 son带参构造方法 =========================================== son普通赋值 方法test()重写 father普通代码块1 father无参构造方法... son普通代码块1 son普通赋值 方法test()重写 son普通代码块2 son带参构造方法
类实例化的时候,首先要加载并初始化目标类,初始化过程在程序运行期间只在第一次构建对象时执行一次。
初始化过程加载的是该类所有的static 修饰的 变量、方法、代码块,其执行顺序按照在代码中出现及调用的先后顺序执行。
类实例化过程在每次构建对象时候都会执行。
实例化过程加载的是该类的所有非static修饰的 变量、代码块,以及它们在加载时候涉及到调用的其它方法,它们按照实例化时在代码中调用的先后顺序执行。
如对本文有疑问, 点击进行留言回复!!
集合框架——Map、泛型以及Collection算法常用方法
Elasticsearch 升级 7.x 版本后,我感觉掉坑里了
Mybatis的插件运行原理以及如何编写一个Mybatis的插件
网友评论