Saya tidak dapat memahami teks berikut ... Apakah itu berarti <clinit>
untuk konstruktor kosong? Mengapa penting untuk memiliki dua versi berbeda?
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html
2.9. Special Methods
Pada level mesin virtual Java, setiap konstruktor (§2.12) muncul sebagai metode inisialisasi instance yang memiliki nama khusus
<init>
. Nama ini disediakan oleh kompiler. Karena nama<init>
bukan pengidentifikasi yang valid, nama tidak dapat digunakan secara langsung dalam program yang ditulis dalam bahasa pemrograman Java. Metode inisialisasi instance dapat dipanggil hanya dalam mesin virtual Java oleh instruksi khusus pemanggilan, dan metode tersebut dapat dipanggil hanya pada instance kelas yang tidak diinisialisasi. Metode inisialisasi instance mengambil izin akses (§2.7.4) dari konstruktor tempat asalnya.Sebuah kelas atau antarmuka memiliki paling banyak satu kelas atau metode inisialisasi antarmuka dan diinisialisasi (§2.17.4) dengan menjalankan metode itu. Metode inisialisasi kelas atau antarmuka bersifat statis dan tidak memerlukan argumen. Itu memiliki nama khusus
<clinit>
. Nama ini disediakan oleh kompiler. Karena nama<clinit>
bukan pengenal yang valid, nama tidak dapat digunakan secara langsung dalam program yang ditulis dalam bahasa pemrograman Java. Metode inisialisasi kelas dan antarmuka dipanggil secara implisit oleh mesin virtual Java; mereka tidak pernah dipanggil secara langsung dari instruksi mesin virtual Java, tetapi dipanggil hanya secara tidak langsung sebagai bagian dari proses inisialisasi kelas.
CL
berdiri?