Maison  >  Article  >  Java  >  Mot clé natif en Java

Mot clé natif en Java

王林
王林original
2024-08-30 15:21:451021parcourir

Le mot-clé natif fait office de lien entre le langage JAVA et un bout de code ou une bibliothèque écrite dans des langages différents à l'exception de JAVA, qui peut dépendre de la machine sur laquelle vous travaillez. Si le mot-clé natif est appliqué à une méthode, cela signifie que la méthode sera implémentée en utilisant du code natif écrit dans un autre langage (comme C ou C++) via JNI (interface native JAVA).

Syntaxe du mot-clé natif en Java

La syntaxe du code natif est la même que la définition normale de la fonction, avec le mot-clé « natif » ajouté au début de la fonction.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Par exemple :

public class testing
{public native String testMethod (String parameter);}

Ici, le public est un modificateur d'accès. Il doit être public pour qu'un autre fichier puisse l'utiliser. La chaîne est le type de données de retour de la fonction. Il peut s'agir d'un entier, d'un caractère ou d'un booléen selon le mot-clé.  Le paramètre transmis à cette fonction est également du type de données chaîne. Tout devrait rester sous la classe.

Après la déclaration de la fonction, nous appelons cette fonction via l'objet créé et la bibliothèque chargée.

public static void main(String[] args)
{
System.loadLibrary("testing");
testing testingnew = new testing();
String  output   = testingnew.stringMethod("NATIVE");
}

La bibliothèque définie ci-dessus doit être chargée en premier, et son objet est créé. A l'aide de cet objet, la fonction native est appelée.

Comment fonctionne le mot clé natif ?

Il devrait y avoir deux fichiers. L’un contient du code JAVA, tandis que l’autre doit avoir du code hérité C/C++. Le code Java sera utilisé pour appeler le code existant. Cet ancien code interagira avec le matériel et renverra le résultat attendu.

Lorsque le code existant interagit avec le matériel, il ne suivra pas les directives établies par JAVA. Ce code effectuera le traitement souhaité pour obtenir le résultat et transmettre les résultats à JNI. L'interface native Java vérifiera alors dans son répertoire contenant toutes les règles relatives au code natif (cela relève d'un fichier appelé javah.exe dans le SDK). JNI est conçu dans le cadre de la boîte à outils Java. Après ce traitement, JAVA publiera lui-même les sorties dans le langage JAVA. Lorsque nous créons le programme JAVA, nous devons nous assurer qu'il existe un lien de variable/flux de données entre le fichier JAVA et le fichier hérité afin qu'il y ait un flux de données fluide entre les deux.

Les étapes expliquant comment utiliser des mots-clés natifs sont indiquées ci-dessous :

  1. Écrivez le code JAVA contenant la méthode native, la bibliothèque partagée chargée et enregistrez-le en utilisant « filename.JAVA ».
  2. Compilez le code JAVA et convertissez le code en bytecode.
  3. Créez un fichier d'en-tête C/C++ contenant une signature de fonction native qui doit être appelée.
  4. L'écriture de code C/C++ a une implémentation de méthode native.
  5. Exécutez le fichier exécutable JAVA pour voir les résultats.

Exemple

Nous devrions écrire du code dans Eclipse et exécuter le code pour créer une bibliothèque à l'aide de laquelle le code C sera ensuite implémenté.

Code : package com.slackerOne;

public class JPP {
public static native void pAccess();
public static native int pRead();
public static native void pWrite(int port, int output);
static{
System.loadLibrary("JPPlibs");
}
public void jAccess(){
JPP.pAccess();
}
public int jRead(){
return JPP.pRead();
}
public void jWrite(int port, int output){
JPP.pWrite(port, output);
}
}

Après avoir enregistré ce code dans la nouvelle « classe » du projet java, nous devons mettre en place un environnement d'exécution pour générer un fichier d'en-tête.

Mot clé natif en Java

Lorsque nous exécuterons ceci, nous devrions générer une bibliothèque.

Sortie :

Ici, nous avons créé le fichier d'en-tête à partir du code java, qui reliera le code natif et le langage java.

Mot clé natif en Java

Avantages des mots-clés natifs en Java

Vous trouverez ci-dessous quelques-uns des avantages.

  1. Cela offre un avantage supplémentaire à JAVA pour interagir avec le code écrit dans d'autres langages et réduire le travail pour avoir le même code écrit en JAVA, réduisant ainsi la redondance du code.
  2. Cela améliore les performances globales du code. Comme le code est écrit dans d’autres langages, il peut être plus rapide lorsqu’il fonctionne avec le langage machine qu’avec JAVA. On peut alors utiliser le programme JAVA pour appeler ce code.
  3. En utilisant cette approche, nous pouvons directement émettre des appels système. Réduire la probabilité d'interférence externe et améliorer la rapidité d'exécution du code.
  4. Vous pouvez appeler dynamiquement une bibliothèque préchargée (écrite dans n'importe quel langage autre que JAVA) en utilisant un code de pilotage arbitraire écrit en JAVA et toujours obtenir une réponse en JAVA.
  5. Il permet à JAVA d'accéder aux ressources matérielles qui sont disponibles pour être utilisées uniquement par d'autres langages.
  6. Dans le cas où vous disposez déjà d'un code dépendant de la plate-forme pour votre application et dont les fonctionnalités ne sont pas prises en charge via JAVA, dans ce cas, nous pouvons avoir du code natif et lier ce code natif à JAVA via un mot-clé natif.

Règles

Les règles pour un mot-clé natif sont les suivantes.

  1. Le mot clé natif est à utiliser avant le nom de la méthode.
  2. La déclaration de méthode native n'a pas de corps et doit se terminer par un point-virgule car ces méthodes ne sont pas définies en JAVA mais sont présentes dans le langage C/C++.
  3. Les méthodes natives ne peuvent pas être déclarées comme méthodes abstraites.
  4. Puisqu'il n'y a aucune garantie si l'ancien code précédent est écrit conformément à la norme IEEE 754 (la norme IEEE pour l'arithmétique à virgule flottante est une norme technique pour l'arithmétique à virgule flottante établie en 1985 par l'Institute of Electrical and Electronics Engineers. ) donc, nous ne pouvons pas déclarer ces méthodes natives comme strictftp.
  5. JAVA conçoit la spécification Java Native Interface (JNI) pour définir les règles et déclarations permettant d'implémenter des méthodes natives, comme la conversion des types de données entre Java et le code natif.

Conclusion

Le mot-clé natif comble le fossé entre les langues natives et JAVA. Cela peut être utilisé comme lien critique si l’interaction de notre logiciel avec le matériel est plus efficace dans l’utilisation du code préexistant. Cela réduit le travail de mise en œuvre par rapport à la conception d'un nouveau code d'application à partir de zéro partout où cela pourrait être évité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Mot-clé statique en JavaArticle suivant:Mot-clé statique en Java