GeeksforGeeks

Le mot clé native est appliqué à une méthode pour indiquer que la méthode est implémentée en code natif en utilisant JNI (Java Native Interface). native est un modificateur applicable uniquement pour les méthodes et nous ne pouvons pas l’appliquer ailleurs. Les méthodes qui sont implémentées en C, C++ sont appelées méthodes natives ou méthodes étrangères.

Les principaux objectifs du mot-clé native sont :

  • Améliorer les performances du système.
  • Réaliser une communication au niveau de la machine/de la mémoire.
  • Utiliser du code non-java hérité déjà existant.

Pseudo code pour utiliser le mot clé native en 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();
}
}



Points importants concernant le mot-clé natif :

  • Pour les méthodes natives la mise en œuvre est déjà disponible dans les anciens langages comme C, C++ et nous ne sommes pas responsables de fournir la mise en œuvre. Par conséquent, la déclaration de méthode native doit se terminer par ; (point-virgule).
  • On ne peut pas déclarer une méthode native comme abstraite.
  • On ne peut pas déclarer une méthode native comme strictfp car il n’y a aucune garantie que les anciens langages (C, C++) suivent la norme IEEE 754. Par conséquent, la combinaison native strictfp est une combinaison illégale pour les méthodes.
  • Le principal avantage du mot clé native est l’amélioration des performances mais le principal inconvénient du mot clé native est qu’il brise la nature indépendante de la plate-forme de java.

Déclarer les méthodes natives : Dans cette section, nous expliquons comment déclarer une méthode native en Java et comment générer le prototype de fonction C/C++ correspondant.

private native String getLine(String prompt);

Du côté du langage natif:

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

Référence:http://www.codejava.net/java-core/the-java-language/native-keyword

Cet article est contribué par Bishal Kumar Dubey. Si vous aimez GeeksforGeeks et souhaitez contribuer, vous pouvez également écrire un article en utilisant contribute.geeksforgeeks.org ou envoyer votre article par courrier à [email protected]. Voyez votre article apparaître sur la page principale de GeeksforGeeks et aidez d’autres Geeks.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.