[JAVA] Point 66: Utiliser judicieusement les méthodes natives
66. Les méthodes natives doivent être utilisées avec prudence
méthode native
Vous pouvez appeler des méthodes écrites en C ou C ++ à l'aide de Java Native Interface (JNI).
Historiquement, les méthodes natives ont trois utilisations.
- Pour accéder aux fonctionnalités spécifiques à la plateforme telles que le registre Windows
- Pour utiliser une bibliothèque de code natif, y compris une bibliothèque pour accéder aux données héritées
- Pour améliorer les performances
Il est légitime d'utiliser des méthodes natives pour accéder aux fonctionnalités spécifiques à la plateforme.
Cela dit, Java a mûri, il possède donc la plupart de ses fonctionnalités. Par exemple, Java 9 vous permet d'accéder aux processus du système d'exploitation.
Vous pouvez également utiliser la méthode native si la bibliothèque native possède une bibliothèque que Java n'a pas.
J'utilise rarement des méthodes natives pour les performances.
Il semble qu'une telle chose se soit produite au début de Java, mais les performances n'ont pas tellement changé en raison de l'évolution de JVM.
Inconvénients de la méthode native
La méthode native présente des inconvénients majeurs.
- Étant donné que la méthode native n'est pas sûre (je pense que c'est une sécurité de gestion de la mémoire qui signifie que BOF ne se produit pas) (Item50), l'application utilisant la méthode native est une erreur de corruption de mémoire même s'il s'agit de Java. On ne peut pas dire qu’il existe une immunité contre.
- Les méthodes natives dépendent de la plateforme et ne sont donc pas portables.
- Difficile à déboguer
- Si vous n'êtes pas bon dans ce domaine, les performances se détérioreront. En effet, le ramasse-miettes peut ne pas fonctionner correctement et le coût des allers-retours entre le code natif est élevé.
- Nécessite un code de colle qui n'est pas lisible et nécessite une description redondante.
En d'autres termes, réfléchissez bien et utilisez la méthode native.