A natív kulcsszót egy metódusra alkalmazzuk, hogy jelezzük, hogy a metódus natív kódban van implementálva a JNI (Java Native Interface) segítségével.A natív egy módosító, ami csak a metódusokra alkalmazható, máshol nem tudjuk alkalmazni. A C-ben, C++-ban implementált metódusokat natív metódusoknak vagy idegen metódusoknak nevezzük.
A natív kulcsszó fő céljai:
- A rendszer teljesítményének javítása.
- Gépi szintű/memória szintű kommunikáció elérése.
- A már meglévő, nem Java kódú örökölt kód felhasználása.
Pszeudokód a java natív kulcsszó használatához:
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();
}
}
Fontos pontok a natív kulcsszóról:
- A natív metódusok implementációja már elérhető a régi nyelvekben, mint a C, C++, és nem mi vagyunk felelősek az implementáció biztosításáért. Ezért a natív metódus deklarációjának ;-vel (pontosvesszővel) kell végződnie.
- Nem deklarálhatjuk a natív metódust absztraktnak.
- Nem deklarálhatjuk a natív metódust strictfp-nek, mert nincs garancia arra, hogy a régi nyelvek (C, C++) követik az IEEE 754 szabványt. Ezért a natív strictfp kombináció illegális kombináció a metódusoknál.
- A natív kulcsszó fő előnye a teljesítményjavulás, de a natív kulcsszó fő hátránya, hogy megbontja a java platformfüggetlenségét.
Natív metódusok deklarálása:
private native String getLine(String prompt);
Natív nyelvi oldalról:
javah -jni Prompt
JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *, jobject, jstring);
Hivatkozás:http://www.codejava.net/java-core/the-java-language/native-keyword
A cikk szerzője: Bishal Kumar Dubey. Ha tetszik a GeeksforGeeks és szeretnél hozzájárulni, írj cikket a contribute.geeksforgeeks.org címen, vagy küldd el cikkedet a [email protected] címre. Láthatod, hogy a cikked megjelenik a GeeksforGeeks főoldalán, és segíthetsz más geekeknek.