java 程序中 静态属性和静态方法是依赖与类,而不是依赖与对象存在,故静态部分比普通属性 普通
方法优先执行。
执行顺序 如下:
1、静态属性--静态方法声明--静态块 只加载类 无构造
2、动态属性--普通方法声明--构造块 构造实例的时候
3、构造方法
构造代码块
默认构造
获取名字
构造代码块
参数构造
静态代码块
获取名字
构造代码块
默认构造
方法优先执行。
执行顺序 如下:
1、静态属性--静态方法声明--静态块 只加载类 无构造
2、动态属性--普通方法声明--构造块 构造实例的时候
3、构造方法
类加载过程中 如存在父类 首先执行父类的 按上述方法执行。
package io.impTest; import org.junit.Test; /** * Created by fengxinzi on 17-11-15. */ public class test1 { @Test public void test(){ new Student(); } } class Student{ //构造代码块 private static Student student1 = new Student(); private static Student student2 = new Student("name"); private String name = getName(); { System.out.println("构造代码块"); } static { System.out.println("静态代码块"); } Student(){ System.out.println("默认构造"); } Student(String name){ System.out.println("参数构造"); } public String getName(){ System.out.println("获取名字"); return "获取名字"; } }
执行结果:
获取名字构造代码块
默认构造
获取名字
构造代码块
参数构造
静态代码块
获取名字
构造代码块
默认构造