Project Panama ialah inisiatif OpenJDK yang bertujuan untuk meningkatkan hubungan antara Java dan kod asli. Salah satu komponen utamanya ialah Foreign Function & Memory API, yang memudahkan dan mempertingkatkan cara aplikasi Java berinteraksi dengan perpustakaan dan memori asli.
API Fungsi & Memori Asing membolehkan program Java memanggil fungsi asli dan mengurus memori asli secara langsung. API ini menyediakan cara yang lebih selamat dan cekap untuk melaksanakan operasi yang memerlukan Antara Muka Asli Java (JNI).
Berikut ialah contoh cara menggunakan API Fungsi & Memori Asing untuk memanggil fungsi asli:
Pertama, anda perlu mentakrifkan tandatangan fungsi asli yang ingin anda panggil. Katakan kita mempunyai perpustakaan C dengan fungsi berikut:
// native.c #include <stdio.h> void sayHello() { printf("Hello from C!\n"); }
import jdk.incubator.foreign.*; public class ForeignFunctionExample { public static void main(String[] args) { try (var session = MemorySession.openConfined()) { SymbolLookup lookup = SymbolLookup.loaderLookup(); var sayHello = lookup.find("sayHello").orElseThrow(); var sayHelloHandle = CLinker.getInstance().downcallHandle( sayHello, FunctionDescriptor.ofVoid() ); sayHelloHandle.invokeExact(); } catch (Throwable t) { t.printStackTrace(); } } }
Dalam contoh ini:
API Fungsi & Memori Asing juga membolehkan anda mengurus memori asli dengan selamat. Berikut ialah contoh:
import jdk.incubator.foreign.*; public class MemoryManagementExample { public static void main(String[] args) { try (var session = MemorySession.openConfined()) { MemorySegment segment = MemorySegment.allocateNative(100, session); MemoryAccess.setByteAtOffset(segment, 0, (byte) 42); byte value = MemoryAccess.getByteAtOffset(segment, 0); System.out.println("Value: " + value); } } }
Dalam contoh ini:
API Fungsi & Memori Asing ialah tambahan hebat kepada ekosistem Java, menyediakan cara yang lebih selamat, cekap dan lebih mudah untuk berinteraksi dengan kod dan memori asli. Sama ada anda perlu memanggil fungsi asli atau mengurus memori asli, API ini membuka kemungkinan baharu untuk aplikasi Java.
Atas ialah kandungan terperinci Pengenalan kepada API Fungsi & Memori Asing (Projek Panama). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!