我无法理解以下文本...这是否意味着<clinit>
用于空构造函数?为什么拥有两个不同的版本很重要?
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html
最佳答案
<init>
是实例的(或其中的)构造函数,以及非静态字段初始化。<clinit>
是该类的静态初始化块,以及静态字段初始化。
class X {
static Log log = LogFactory.getLog(); // <clinit>
private int x = 1; // <init>
X(){
// <init>
}
static {
// <clinit>
}
}
关于java - Java:<init>和<clinit>有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8517121/