Penggunaan kata kunci asli dalam Java
Di Jawa, kata kunci asli digunakan untuk menunjukkan bahawa kaedah dilaksanakan menggunakan bahasa peringkat rendah (seperti C atau C++) dan bukannya bahasa Java. Menggunakan kata kunci asli, anda boleh memanggil fungsi yang dilaksanakan dalam bahasa bukan Java lain di Jawa, seperti fungsi khusus sistem pengendalian, kawalan peranti perkakasan, dsb.
Pengisytiharan kaedah asli tidak termasuk kod pelaksanaan, hanya pengisytiharan kaedah tersebut perlu dilengkapkan dalam bahasa lain. Java memanggil kaedah ini kaedah asli.
Berikut ialah contoh penggunaan kata kunci asli:
Mengisytiharkan kaedah asli dalam kelas Java:
public class NativeDemo { public native void printHello(); // native方法声明 static { System.loadLibrary("NativeLibrary"); // 加载本地库 } public static void main(String[] args) { NativeDemo demo = new NativeDemo(); demo.printHello(); // 调用native方法 } }
Dalam contoh di atas, kaedahprintHello()
diisytiharkan sebagai asli kaedah menggunakan kata kunci asli. Dalam blok kod statik kelas, muatkan pustaka asliNativeLibrary
melalui kaedahSystem.loadLibrary()
. Kemudian buat objekNativeDemo
dalam kaedahmain()
Apabila kaedahprintHello()
dipanggil, kod dalam pustaka tempatan akan dilaksanakan.printHello()
方法使用native关键字声明为本地方法。在类的静态代码块中,通过System.loadLibrary()
方法加载本地库NativeLibrary
。然后在main()
方法中创建NativeDemo
对象,调用printHello()
方法时会执行本地库中的代码。
实现native方法的本地库:
#include#include "NativeDemo.h" JNIEXPORT void JNICALL Java_NativeDemo_printHello(JNIEnv *env, jobject obj) { printf("Hello from native code! "); }
上面的示例中,实现了一个本地方法printHello()
,在该方法中打印一条信息。该方法的命名规则是Java类名+方法名,并带有特定的参数(JNIEnv*和jobject)。
要编译和运行这个示例,可以按照以下步骤操作:
javac
命令编译Java文件:javac NativeDemo.java
javah
命令生成C头文件:javah -jni NativeDemo
gcc -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/win32" -shared -o NativeLibrary NativeDemo.c
java NativeDemo
运行结果会输出Hello from native code!
rrreee
Dalam contoh di atas, kaedah asliprintHello()
dilaksanakan untuk mencetak mesej dalam kaedah ini. Peraturan penamaan kaedah ini ialah nama kelas Java + nama kaedah, dengan parameter tertentu (JNIEnv* dan jobject).
Untuk menyusun dan menjalankan contoh ini, anda boleh mengikuti langkah di bawah:
javac
untuk susun fail Java:javac NativeDemo.java
javah
untuk menjana fail pengepala C:javah -jni NativeDemo code>
gcc -I"$JAVA_HOME/include" -I" $JAVA_HOME/include/win32" -shared -o NativeLibrary NativeDemo.c
java NativeDemo
Hello dari kod asli!
, menunjukkan bahawa kaedah asli telah berjaya dipanggil. Perlu diingatkan bahawa kod pelaksanaan kaedah asli mungkin berbeza pada sistem pengendalian yang berbeza dan perlu diubah suai dengan sewajarnya mengikut situasi sebenar. Ringkasan: kata kunci asli membenarkan Java memanggil fungsi yang dilaksanakan dalam bahasa bukan Java, dan merupakan cara untuk Java berinteraksi dengan bahasa asas (seperti C atau C++). Dengan menggunakan kata kunci asli, anda boleh memanggil fungsi yang dilaksanakan oleh bahasa asas dalam Java, seperti fungsi khusus sistem pengendalian, kawalan peranti perkakasan, dsb. Dalam kaedah yang diisytiharkan menggunakan kata kunci asli, fungsi tertentu perlu dilaksanakan melalui perpustakaan tempatan Penulisan dan penggunaan perpustakaan tempatan perlu dikonfigurasikan dan diselaraskan mengikut sistem pengendalian dan keperluan yang berbeza. Menguasai penggunaan kata kunci asli boleh menyediakan program Java dengan rangkaian senario aplikasi yang lebih luas dan potensi pengoptimuman prestasi yang lebih tinggi.
Atas ialah kandungan terperinci Penggunaan kata kunci asli dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!