Capítulo 6 Interfaz de método nativo

Capítulo 6 Interfaz de método nativo

JVM explicado por Song Hongkang de Shang Silicon Valley: enlace bilibili

Inserte la descripción de la imagen aquí

  • ¿Qué es el método local?

    • En pocas palabras, un método nativo es una interfaz para que Java llame a código que no es Java . Un método nativo es un método Java: la implementación del método se implementa en un lenguaje que no es Java, como C. Esta característica no es exclusiva de Java. Muchos otros lenguajes compilados tienen este mecanismo. Por ejemplo, en C ++, puede usar extern "C" para decirle al compilador de C ++ que llame a una función de C.
    • "Un método nativo es un método Java cuya implementación se proporciona mediante un código no Java".
    • Al definir un método nativo, no se proporciona el cuerpo de implementación (algo así como definir una interfaz Java), porque el cuerpo de implementación se implementa mediante un lenguaje que no es Java.
    • El papel del método nativo es integrar diferentes lenguajes de programación para Java, y su intención original es integrar programas C / C ++.
  • Demostración de código

    public class IHaveNatives {
          
          
        public native void Native1(int x);
    
        public native static long Native2();
    
        private native synchronized float Native3(Object o);
    
        native void Native4(int[] ary) throws Exception;
    }
    

    El identificador nativo se puede utilizar con todos los demás identificadores de Java, excepto abstracto.

  • ¿Por qué utilizar el método nativo?

    • Java es muy cómodo de usar, pero algunos niveles de tareas no son fáciles de implementar con Java, o cuando estamos muy preocupados por la eficiencia del programa, surge el problema.
    • Interactuar con fuera del entorno de Java
      • Ventajas Las aplicaciones Java necesitan interactuar con el entorno fuera de Java, que es la razón principal de la existencia de métodos nativos . Puede pensar en la situación en la que Java necesita intercambiar información con algunos sistemas subyacentes, como sistemas operativos o cierto hardware. El método nativo es un mecanismo de comunicación formal: nos proporciona una interfaz muy concisa y no necesitamos comprender los engorrosos detalles de las aplicaciones Java.
      • Interactuar con el sistema operativo:
        • JVM soporta el propio lenguaje Java y las librerías en tiempo de ejecución. Es la plataforma sobre la que viven los programas Java. Consiste en un intérprete (interpretando bytecode) y unas librerías conectadas al código nativo. Sin embargo, después de todo, no es un sistema completo y, a menudo, depende del soporte de algunos sistemas subyacentes. Estos sistemas subyacentes suelen ser potentes sistemas operativos. Mediante el uso de estos métodos locales, hemos sido capaces de interactuar con la implementación subyacente de JRE en Java, e incluso algunas partes de la JVM está escrito en C . Además, si queremos usar algunas de las características del sistema operativo que el lenguaje Java en sí mismo no proporciona encapsulación, también necesitamos usar métodos nativos.
      • Java del sol
        • Intérprete de Sun implementado en C, lo que lo convierte en un C ordinario como interacción con el externo . Jre se implementa principalmente en Java y también interactúa con el mundo exterior a través de algunos métodos locales. Por ejemplo: el método setPriority () de la clase java.lang.Thread está implementado en Java, pero implementa el método local setPriority0 () de la clase. Este método nativo se implementa en C y se implanta dentro de la JVM. En la plataforma Windows 95, este método nativo eventualmente llamará a la API de Win32 setPriority (). Esta es la implementación específica de un método local proporcionado directamente por la JVM. En más casos, el método local es proporcionado por una biblioteca de enlaces dinámicos externa (biblioteca de enlaces dinámicos externos) y luego llamado por la JVM.
  • status quo

    • En la actualidad, este método se utiliza cada vez menos, excepto para aplicaciones relacionadas con el hardware , como la determinación de impresoras a través de programas Java o la gestión de equipos de producción a través de sistemas Java, que son relativamente raros en aplicaciones de nivel empresarial. Debido a que la comunicación clave de dominios heterogéneos ahora está muy desarrollada, por ejemplo, se puede usar la comunicación por socket, también se puede usar el servicio web, etc., no hay mucha introducción.

Supongo que te gusta

Origin blog.csdn.net/weixin_42638946/article/details/113645081
Recomendado
Clasificación