Kaedah Utama Java: Mengapa Pengisytiharan Statik?
Kaedah utama Java mempunyai tandatangan khusus:
public static void main(String[] args) { ... }
Ini menimbulkan persoalan: adakah pengubah suai statik penting untuk yang utama kaedah?
Konvensyen, Bukan Keperluan
Bertentangan dengan tanggapan awal, pengisytiharan statik untuk kaedah utama ialah konvensyen, bukannya keperluan linguistik. Ia mungkin mengejutkan anda, tetapi nama kaedah "main()" dan parameter String[] hanyalah konvensyen.
Konvensyen Alternatif
Java 21 memperkenalkan konvensyen alternatif yang membenarkan peninggalan parameter String[], pengubah suai awam dan juga pengubah statik. Sekiranya tiada pengubah suai statik, instance kelas akan dibuat sebelum invocation main(), yang memerlukan kelas mempunyai pembina parameter sifar bukan persendirian.
Antara Muka Asli Java (JNI) dan java.exe
Pelaksanaan program Java melalui java.exe (atau javaw.exe pada Windows) melibatkan panggilan JNI yang memuatkan JVM sebagai DLL. JNI berfungsi sebagai jambatan antara persekitaran JVM dan C/C.
java.exe: Aplikasi C Ringkas
java.exe pada asasnya adalah aplikasi C dipermudahkan yang menghuraikan argumen baris perintah, mencipta tatasusunan String dalam JVM, mencari kaedah main() dalam kelas yang ditentukan menggunakan JNI dan memanggilnya dengan argumen tatasusunan. Proses ini menyerupai pantulan Java, sebaliknya menggunakan panggilan fungsi asli.
Menyesuaikan java.exe
Adalah mungkin untuk mengubah suai kod sumber java.exe (disediakan dengan JDK) untuk mengubah fungsinya. Ini digunakan dalam aplikasi berasaskan Java untuk menyesuaikan pelancar, menyediakan ikon unik dan mengendalikan senario tertentu (cth., menghantar pemegang COM ke main()).
Kemudahan dan Pengaruh Sejarah
Sifat statik kaedah utama menawarkan kemudahan dan sejajar dengan konvensyen penamaan yang diterima pakai daripada C. Ia memperkasakan IDE untuk mengesan secara automatik kelas yang boleh dilancarkan dalam projek. Walaupun alternatif wujud, kaedah utama "statik" kekal sebagai konvensyen di mana-mana dalam pengaturcaraan Java.
Atas ialah kandungan terperinci Mengapa kaedah `utama` dalam Java diisytiharkan sebagai `statik`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!