Java: 之间有什么区别?

10 浏览
0 Comments

Java: 之间有什么区别?

我无法理解以下文本... 它是否意味着是用于空构造函数?为什么有两个不同版本很重要?

根据Java虚拟机的层面,每个构造函数(§2.12)都会以一个特殊名称显示为实例初始化方法。这个名称由编译器提供。因为不是有效的标识符,所以不能直接在Java编程语言的程序中使用。实例初始化方法只能在Java虚拟机内通过invokespecial指令调用,并且只能在未初始化的类实例上调用。实例初始化方法继承了其所属构造函数的访问权限(§2.7.4)。

一个类或接口最多有一个类或接口初始化方法,并通过调用该方法进行初始化(§2.17.4)。类或接口的初始化方法是静态的,不接受任何参数。它有一个特殊的名称,这个名称由编译器提供。因为不是有效的标识符,所以不能直接在Java编程语言的程序中使用。类和接口的初始化方法由Java虚拟机隐式调用;它们从来不会直接从任何Java虚拟机指令中调用,而是作为类初始化过程的一部分间接调用。

0