是这样的,我每次用工具去查看反编译后的字节码文件的时候,都会看到有<init>方法,我一开始想不明白,<init>方法是什么时候执行到的。
然后结合老师所讲的,加入了自己的理解,不知道这样理解是否是正确的呢?
老师讲的:
<init>:实例初始化方法,通过JVM的invokespecial指令来调用。
注意:这个方法并不是我们写的构造方法,从本质来讲,在A的类,public A(){}只是一个回调,具体要做哪些事情。
我的理解:
<init>封装了实例化的一些操作,每个类默认都有一个构造方法,当我们执行这个类的一些方法的时候,包括main()方法,就会实例化一个实体对象,然后执行构造方法,在默认的构造方法中,会对非静态变量进行定义、赋值等一系列的初始化的操作,所以我们在查看每一个反编译后的字节码文件的时候,都会看到有<init>方法的执行。