GeeksforGeeks

Native nøgleordet anvendes til en metode for at angive, at metoden er implementeret i native kode ved hjælp af JNI (Java Native Interface).Native er en modificator, der kun gælder for metoder, og vi kan ikke anvende det andre steder. De metoder, der er implementeret i C, C++, kaldes native metoder eller udenlandske metoder.

De vigtigste mål med native nøgleordet er:

  • At forbedre systemets ydeevne.
  • At opnå kommunikation på maskinniveau/memory-niveau.
  • At anvende allerede eksisterende legacy ikke-java-kode.

Pseudokode til brug af native nøgleord i java:

Class Native
{
Static
{
System.LoadLibrary("Native library path");
}
Public native void m();
}
Class Test
{
Public static void main(String args)
{
Native n = new Native();
n.m();
}
}



Vigtige punkter om det indfødte nøgleord:

  • Der findes allerede en implementering af native metoder i gamle sprog som C og C++, og vi er ikke ansvarlige for at levere en implementering. Derfor skal erklæringen af native metoder afsluttes med ; (semikolon).
  • Vi kan ikke erklære native metoder som abstrakte.
  • Vi kan ikke erklære native metoder som strictfp, fordi der ikke er nogen garanti for, at gamle sprog (C, C++) følger IEEE 754-standarden. Derfor er native strictfp-kombinationen en ulovlig kombination for metoder.
  • Den største fordel ved native nøgleordet er forbedring af ydeevnen, men den største ulempe ved native nøgleordet er, at det bryder Java’s platformsuafhængige karakter.

Deklaration af native metoder: I dette afsnit forklarer vi, hvordan man erklærer en native metode i Java, og hvordan man genererer den tilsvarende C/C++-funktionsprototype.

private native String getLine(String prompt);

Fra det native sprogs side:

javah -jni Prompt
JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *, jobject, jstring);

Reference:http://www.codejava.net/java-core/the-java-language/native-keyword

Denne artikel er bidraget af Bishal Kumar Dubey. Hvis du kan lide GeeksforGeeks og gerne vil bidrage, kan du også skrive en artikel via contribute.geeksforgeeks.org eller sende din artikel på mail til [email protected]. Se din artikel blive vist på GeeksforGeeks’ hovedside, og hjælp andre nørder.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.