GeeksforGeeks

Klíčové slovo nativní se používá u metody k označení, že metoda je implementována v nativním kódu pomocí JNI (Java Native Interface). nativní je modifikátor použitelný pouze pro metody a nemůžeme ho použít nikde jinde. Metody, které jsou implementovány v jazycích C, C++, se nazývají nativní metody nebo cizí metody.

Hlavní cíle nativního klíčového slova jsou:

  • Zlepšit výkon systému.
  • Dosáhnout komunikace na úrovni stroje/paměti.
  • Použít již existující starší kód, který není v Javě.

Pseudokód pro použití nativního klíčového slova v Javě:

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();
}
}



Důležité body o nativním klíčovém slově:

  • Pro nativní metody je již k dispozici implementace ve starých jazycích jako C, C++ a my nejsme zodpovědní za poskytování implementace. Proto by deklarace nativní metody měla končit ; (středníkem).
  • Nativní metodu nemůžeme deklarovat jako abstraktní.
  • Nativní metodu nemůžeme deklarovat jako striktnífp, protože není zaručeno, že staré jazyky (C, C++) dodržují standard IEEE 754.
  • Nativní metodu nemůžeme deklarovat jako abstraktní. Proto je kombinace nativních metod strictfp nelegální kombinací.
  • Hlavní výhodou nativního klíčového slova je zlepšení výkonu, ale hlavní nevýhodou nativního klíčového slova je, že narušuje platformově nezávislou povahu Javy.

Deklarování nativních metod:

private native String getLine(String prompt);

Ze strany nativního jazyka:

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

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

Tento článek napsal Bishal Kumar Dubey. Pokud se vám GeeksforGeeks líbí a chtěli byste přispět, můžete také napsat článek pomocí stránky contribute.geeksforgeeks.org nebo poslat svůj článek na adresu [email protected]. Uvidíte, jak se váš článek objeví na hlavní stránce GeeksforGeeks, a pomůžete tak ostatním geekům.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.