Capítulo 6 Interface de método nativo

Capítulo 6 Interface de método nativo

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

Insira a descrição da imagem aqui

  • Qual é o método local?

    • Simplificando, um Native Method é uma interface para Java chamar código não Java . Um Native Method é um método Java: a implementação do método é implementada em uma linguagem não Java, como C. Este recurso não é exclusivo do Java. Muitas outras linguagens compiladas têm esse mecanismo. Por exemplo, em C ++, você pode usar extern "C" para dizer ao compilador C ++ para chamar uma função C.
    • “Um método nativo é um método Java cuja implementação é fornecida por código não Java.”
    • Ao definir um método nativo, o corpo de implementação não é fornecido (algo como definir uma interface Java), porque o corpo de implementação é implementado por uma linguagem não Java.
    • O papel do método nativo é integrar diferentes linguagens de programação para Java, e sua intenção original é integrar programas C / C ++.
  • Demonstração 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;
    }
    

    O identificador nativo pode ser usado com todos os outros identificadores java, exceto abstrato.

  • Por que usar o método nativo?

    • Java é muito conveniente de usar, mas alguns níveis de tarefas não são fáceis de implementar com Java, ou quando estamos muito preocupados com a eficiência do programa, surge o problema.
    • Interaja fora do ambiente Java
      • Vantagens Os aplicativos Java precisam interagir com o ambiente fora do Java, que é a principal razão para a existência de métodos nativos . Você pode pensar sobre a situação quando o Java precisa trocar informações com alguns sistemas subjacentes, como sistemas operacionais ou determinado hardware. O método nativo é um mecanismo de comunicação formal: ele nos fornece uma interface muito concisa e não precisamos entender os detalhes incômodos dos aplicativos Java.
      • Interaja com o sistema operacional:
        • JVM suporta a própria linguagem Java e bibliotecas de tempo de execução.É a plataforma em que vivem os programas Java.Ela consiste em um interpretador (bytecode de interpretação) e algumas bibliotecas conectadas ao código nativo. No entanto, não é um sistema completo, afinal, e muitas vezes depende do suporte de alguns sistemas subjacentes. Esses sistemas subjacentes geralmente são sistemas operacionais poderosos. Ao usar esses métodos locais, fomos capazes de interagir com a implementação subjacente do JRE em Java, e até mesmo algumas partes da JVM é escrito em C . Além disso, se quisermos usar alguns dos recursos do sistema operacional que a própria linguagem Java não fornece encapsulamento, também precisamos usar métodos nativos.
      • Java da Sun
        • O interpretador Sun implementado em C, o que o torna semelhante a um C comum como interação com o externo . Jre é implementado principalmente em Java e também interage com o mundo externo por meio de alguns métodos locais. Por exemplo: o método setPriority () da classe java.lang.Thread é implementado em Java, mas implementa o método local setPriority0 () da classe. Este método nativo é implementado em C e é implantado dentro da JVM. Na plataforma Windows 95, este método nativo irá eventualmente chamar a API setPriority () do Win32. Esta é a implementação específica de um método local fornecido diretamente pela JVM. Em mais casos, o método local é fornecido por uma biblioteca de link dinâmico externa (biblioteca de link dinâmico externa) e, em seguida, chamado pela JVM.
  • status quo

    • Atualmente, esse método é cada vez menos usado, exceto para aplicativos relacionados a hardware , como determinar impressoras por meio de programas Java ou gerenciar equipamentos de produção por meio de sistemas Java, que são relativamente raros em aplicativos de nível corporativo. Como a comunicação principal de domínios heterogêneos agora está muito desenvolvida, por exemplo, a comunicação de soquete pode ser usada, o serviço da Web também pode ser usado, etc., sem muita introdução.

Acho que você gosta

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