Rumah > Soal Jawab > teks badan
PHP中文网2017-04-18 10:12:52
Saya mencari untuk masa yang lama tetapi tidak dapat mencari masa pelaksanaan blok Kemudian saya menggunakan javap -c untuk menyemak fail kelas dan mendapati bahawa blok telah dibuang ke dalam pembina, dan kaedah <init> invokespecial superclass juga ada di dalamnya, tetapi di hadapan blok Ini menerangkan masalah anda.
高洛峰2017-04-18 10:12:52
Pertama sekali, selepas menggunakan arahan javac untuk menyusun kelas java, blok kod permulaan kelas java akan hilang - kod dalam blok kod permulaan akan "dipulihkan" kepada setiap pembina dan diletakkan di hadapan semua kod dalam pembina.
Proses asas:
1.为要创建的对象分配内存空间,其大小取决于Java类及其父类和祖先类包含的所有实例域的数量和类型
2.如果内存分配成功(失败会抛出OutOfMemoryError错误),把新创建的对象的所有实例域(包括父类的)都设为默认值
3.调用构造方法
①调用父类的构造方法,如果没有显式使用super关键字进行调用,则由编译器自动生成相关的代码
②按照类中实例域的顺序初始化实例域的值
③执行类的构造方法中的其他代码完成最终的初始化工作
Anda boleh menganalisisnya sendiri.