请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,关于<init>方法的理解

是这样的,我每次用工具去查看反编译后的字节码文件的时候,都会看到有<init>方法,我一开始想不明白,<init>方法是什么时候执行到的。
图片描述
然后结合老师所讲的,加入了自己的理解,不知道这样理解是否是正确的呢?
老师讲的:

<init>:实例初始化方法,通过JVM的invokespecial指令来调用。
注意:这个方法并不是我们写的构造方法,从本质来讲,在A的类,public A(){}只是一个回调,具体要做哪些事情。

我的理解:

<init>封装了实例化的一些操作,每个类默认都有一个构造方法,当我们执行这个类的一些方法的时候,包括main()方法,就会实例化一个实体对象,然后执行构造方法,在默认的构造方法中,会对非静态变量进行定义、赋值等一系列的初始化的操作,所以我们在查看每一个反编译后的字节码文件的时候,都会看到有<init>方法的执行。

正在回答 回答被采纳积分+3

1回答

CC老师 2021-08-18 14:07:56

<init> 是调用构造方法的时候,JVM要调用的方法,主要去完成类实例的创建、实例变量的初始化等工作,这个是JVM调用的,JVM调用它过后,就相当于已经创建好类实例了

0 回复 有任何疑惑可以回复我~
  • 提问者 三尺357159 #1
    但是比如我这个类里面没有任何new对象的操作,然后编译了这个类之后,再查看反编译的文件的时候,为什么还有这个<init>方法呢,还是说编译之后仅仅是产生了这个方法,而不是去调用执行了这个方法。
    回复 有任何疑惑可以回复我~ 2021-08-18 22:26:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信