Rumah > Java > javaTutorial > Bagaimanakah Kata Kunci `native` Mendayakan Kod Java untuk Berinteraksi dengan Perpustakaan Asli?

Bagaimanakah Kata Kunci `native` Mendayakan Kod Java untuk Berinteraksi dengan Perpustakaan Asli?

Susan Sarandon
Lepaskan: 2024-11-27 11:58:15
asal
726 orang telah melayarinya

How Does the `native` Keyword Enable Java Code to Interact with Native Libraries?

Menyahmistikan Kata Kunci 'Asli' di Jawa: Perjalanan ke Saling Operasi Kod Asli

Dalam kedalaman dunia trivia Java, 'native ' kata kunci muncul, memberi isyarat kepada kita untuk meneroka selok-beloknya. Artikel ini bertujuan untuk merungkai enigma yang mengelilingi 'native' di Jawa, menyelidiki tujuannya dan menunjukkan penggunaannya dengan contoh praktikal.

Apakah Kata Kunci 'Native' dalam Java Digunakan Untuk?

Kata kunci 'asli' dalam Java berfungsi sebagai pintu masuk untuk menggunakan kod yang ditulis dalam bahasa pengaturcaraan yang berbeza. Ia membolehkan program Java memanggil fungsi yang dilaksanakan dalam perpustakaan yang disusun, biasanya ditulis dalam C atau C . Ini membuka dunia kemungkinan, membolehkan pembangun Java memanfaatkan prestasi dan kefungsian kod asli.

Contoh Minimal Runnable: A Journey into JNI Collaboration

Jom mulakan dalam pengembaraan praktikal dengan contoh yang boleh dijalankan yang minimum. Kami akan mencipta kelas Java dengan kaedah 'asli' yang memanggil fungsi C. Fungsi C ini akan melakukan operasi matematik dan mengembalikan hasilnya kepada Java.

Main.java (Kod Java)

public class Main {
    public native int square(int i);
    public static void main(String[] args) {
        System.loadLibrary("Main");
        System.out.println(new Main().square(2));
    }
}
Salin selepas log masuk

Main.c ( Kod C)

#include <jni.h>
#include "Main.h"

JNIEXPORT jint JNICALL Java_Main_square(
    JNIEnv *env, jobject obj, jint i) {
  return i * i;
}
Salin selepas log masuk

Kompilasi dan Pelaksanaan:

Kompilkan kod Java ('Main.java') menggunakan 'javac' dan jana fail pengepala JNI menggunakan 'javah -jni Main'. Kemudian, susun kod C ('Main.c') menggunakan 'gcc' dengan bendera yang sesuai dan pautkannya dengan pustaka Java Native Interface (JNI). Akhir sekali, laksanakan program Java dengan 'java -Djava.library.path=. Utama'.

Output:

4
Salin selepas log masuk

Tafsiran: Membongkar Fungsi Asli

Kata kunci 'asli' membolehkan kami kepada:

  • Panggilan yang disusun secara dinamik dimuatkan perpustakaan dengan kod pemasangan sewenang-wenangnya dari Java.
  • Terima hasil kembali ke Java, memudahkan pertukaran data yang lancar antara Java dan kod asli.

Aplikasi dan Faedah:

Mekanisme berkuasa ini membuka jalan untuk pelbagai aplikasi, termasuk:

  • Menulis kod kritikal prestasi dalam pemasangan untuk pelaksanaan optimum.
  • Mengakses kefungsian khusus sistem yang tidak tersedia secara langsung di Java.

Perdagangan dan Pertimbangan:

Sementara kod asli penyepaduan menawarkan kelebihan prestasi, ia memperkenalkan pertukaran:

  • Kemudahalihan yang dikurangkan disebabkan pergantungan pada perpustakaan tersusun tertentu.
  • Isu keserasian yang berpotensi apabila menaik taraf atau menukar natif asas perpustakaan.

Kesimpulan:

Kata kunci 'asli' dalam Java merapatkan jurang antara Java dan kod yang disusun, membolehkan kesalingoperasian yang lancar dan membuka kunci kuasa fungsi asli. Walau bagaimanapun, ia memerlukan pertimbangan yang teliti terhadap aspek mudah alih dan keserasian. Dengan menerima kata kunci ini, pengaturcara Java mendapat akses kepada spektrum alat dan teknik yang lebih luas, meningkatkan keupayaan aplikasi mereka.

Atas ialah kandungan terperinci Bagaimanakah Kata Kunci `native` Mendayakan Kod Java untuk Berinteraksi dengan Perpustakaan Asli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan