我一直在研究java类文件格式。我一直在研究从字节码创建类。我已经能够从oracle文档和其他Google搜索中找到我需要的大部分信息。但是我无法找出构造函数在类文件中的存储方式和位置。我认为它们可能存储在方法表中但我不确定,如果它们是我想要它们如何存储的说明。
答案 0 :(得分:5)
来自JVM specification, section 2.9:
在Java虚拟机级别,使用Java编程语言(JLS§8.8)编写的每个构造函数都显示为具有特殊名称
<init>
的实例初始化方法。该名称由编译器提供。因为名称<init>
不是有效的标识符,所以它不能直接用在用Java编程语言编写的程序中。
此外:
类或接口最多只有一个类或接口初始化方法,并通过调用该方法进行初始化(第5.5节)。类或接口的初始化方法具有特殊名称
<clinit>
,不带参数,并且是无效的(§4.3.3)。