首页 > 编程语言 >Java - <clinit> 与 <init>

Java - <clinit> 与 <init>

时间:2022-10-28 12:03:56浏览次数:43  
标签:语句 初始化 Java 变量 静态 子类 父类



1. .java => 编译 => .class => <clinit> => 类构造器


2. 类构造器 将静态变量(初始化)和静态语句块收敛(将一系列操作集合起来执行)到<clinit>


收敛顺序:父类静态变量初始化,父类静态语句块,子类静态变量初始化,子类静态语句块,


3. 父类是接口,则不调用父类的<clinit>


4. 若一个类没有static 语句块,或者static 变量赋值,则可以没有<clinit>


5. <clinit> 类加载时期执行




1. .java => 编译 => .class => <init> => 实例构造器


2. 实例构造器 将变量(初始化),语句块,父类构造器,收敛到<init>


收敛顺序(非静态):父类变量初始化,父类语句块,父类构造函数,子类变量初始化,子类语句块,子类构造器


3. <init> 对象实例化时期执行


对象实例化执行的整个过程


父类静态变量初始化,父类静态语句块,子类静态变量初始化,子类静态语句块,父类变量初始化,父类语句块,父类构造函数,子类变量初始化,子类语句块,子类构造器。

标签:语句,初始化,Java,变量,静态,子类,父类
From: https://blog.51cto.com/u_11290086/5804053

相关文章