Introduzione sulla parola chiave nativa in Java
La parola chiave nativa funge da collegamento tra la lingua JAVA e una porzione di codice o libreria scritta in lingue diverse ad eccezione di JAVA che può dipendere dalla macchina su cui si sta operando. Se la parola chiave nativa viene applicata a un metodo, significa che il metodo verrà implementato utilizzando il codice nativo scritto in un'altra lingua (come C o C ++) tramite JNI (interfaccia nativa JAVA).
Sintassi
La sintassi del codice nativo è la stessa della normale definizione della funzione con la parola chiave "nativa" aggiunta all'inizio della funzione.
Per esempio:
Public class testing
(public native String testMethod (String parameter);)
Qui il pubblico è un modificatore di accesso. Dovrebbe essere pubblico in modo che un altro file possa utilizzarlo. La stringa è il tipo di dati di ritorno della funzione. Può essere intero, carattere o booleano a seconda della parola chiave. Il parametro passato a questa funzione è anche della stringa del tipo di dati. Tutto dovrebbe essere mantenuto sotto la classe.
Dopo la dichiarazione di funzione, chiamiamo questa funzione tramite oggetto creato e libreria caricata.
public static void main(String() args)
(
System.loadLibrary("testing");
testing testingnew = new testing();
String output = testingnew.stringMethod("NATIVE");
)
La libreria sopra definita deve essere caricata per prima e n viene creato il suo oggetto. Con l'aiuto di questo oggetto, viene chiamata la funzione nativa.
Come funziona la parola chiave nativa?
Dovrebbero esserci due file. Uno contenente il codice JAVA mentre l'altro dovrebbe avere il codice legacy C / C ++. Il codice Java verrà utilizzato per chiamare il codice legacy. Questo codice legacy interagirà con l'hardware e restituirà l'output previsto.
Quando il codice legacy interagisce con l'hardware, non seguirà le linee guida stabilite da JAVA. Questo codice eseguirà l'elaborazione desiderata per ottenere l'output e passare i risultati a JNI. L'interfaccia nativa Java controllerà quindi nella sua directory contenente tutte le regole relative al codice nativo (questo si trova in un file chiamato javah.exe in SDK). JNI è progettato come parte del toolkit Java. Dopo questa elaborazione, JAVA pubblicherà gli output nella stessa lingua JAVA. Quando stiamo creando il programma in JAVA, dobbiamo assicurarci che ci sia un collegamento di flusso variabile / dati tra il file JAVA e il file legacy in modo che vi sia un flusso regolare di dati tra entrambi.
Di seguito sono riportati i passaggi che spiegano come utilizzare le parole chiave native:
- Scrivi il codice JAVA contenente il metodo nativo, la libreria condivisa caricata e salvala usando "nomefile.JAVA".
- Compilare il codice JAVA e convertirlo in bytecode.
- Creare un file di intestazione C / C ++ contenente una firma della funzione nativa che dovrebbe essere chiamata.
- Scrivi codice C / C ++ ha un'implementazione di un metodo nativo.
- Esegui il file eseguibile JAVA per vedere i risultati.
Esempio
Dovremmo scrivere il codice in Eclipse ed eseguire il codice per creare una libreria con la quale verrà quindi implementato il codice C.
Codice : pacchetto 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);
)
)
Dopo aver salvato questo codice nella nuova "classe" del progetto Java. Dobbiamo impostare un ambiente di esecuzione per generare un file di intestazione.
Quando eseguiremo questo, dovremmo generare una libreria.
Produzione:
Qui abbiamo creato il file header dal codice java che fungerà da collegamento tra codice nativo e linguaggio java.
Vantaggi della parola chiave nativa in Java
- Fornisce un ulteriore vantaggio a JAVA per interagire con il codice scritto in altre lingue e ridurre il lavoro per avere lo stesso codice scritto in JAVA, riducendo quindi la ridondanza del codice.
- Migliora le prestazioni complessive del codice. Poiché il codice è scritto in altre lingue, potrebbe essere più veloce quando funziona con il linguaggio macchina rispetto a JAVA. Possiamo quindi utilizzare il programma JAVA per chiamare questo codice.
- Utilizzando questo approccio, possiamo dare direttamente chiamate di sistema. Ridurre la probabilità di interferenze esterne e migliorare la velocità di esecuzione del codice.
- Puoi chiamare in modo dinamico una libreria precaricata (scritta in qualsiasi lingua diversa da JAVA) utilizzando un codice guida arbitrario scritto in JAVA e ottenere comunque una risposta in JAVA.
- Rende accessibile a JAVA il raggiungimento delle risorse hardware disponibili per essere utilizzate solo da altre lingue.
- Nel caso in cui sia già stato creato un codice dipendente dalla piattaforma per la propria applicazione e le cui funzionalità non sono supportate tramite JAVA, in tal caso, è possibile avere un codice nativo e collegare questo codice nativo a JAVA tramite una parola chiave nativa.
Regole
- La parola chiave nativa deve essere utilizzata prima del nome del metodo.
- La dichiarazione del metodo nativo non ha il corpo e dovrebbe terminare con un punto e virgola poiché questi metodi non sono definiti in JAVA ma sono presenti nel linguaggio C / C ++.
- I metodi nativi non possono essere dichiarati come metodo astratto.
- Poiché non vi è alcuna garanzia se il precedente codice precedente sia stato scritto in conformità allo standard IEEE 754 (lo standard IEEE per l'aritmetica in virgola mobile è uno standard tecnico per l'aritmetica in virgola mobile stabilito nel 1985 dall'Institute of Electrical and Electronics Engineers), non possiamo dichiarare questi metodi nativi come strictftp.
- La specifica JNI (Java Native Interface) è progettata da JAVA per definire le regole e le dichiarazioni per implementare metodi nativi, come la conversione dei tipi di dati tra Java e il codice nativo.
Conclusione
La parola chiave nativa è quella che colma il divario tra lingue native e JAVA. Questo può essere usato come collegamento critico se l'interazione del nostro software con l'hardware è più per ottenere il codice efficiente utilizzando il codice preesistente. Rende meno efficace l'implementazione rispetto alla progettazione di un nuovo codice applicativo da zero ovunque possa essere evitato.
Articoli consigliati
Questa è una guida alla parola chiave nativa in Java. Qui discutiamo di come funziona la parola chiave nativa con gli esempi, i vantaggi e le regole. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -
- JTabbedPane in Java
- Parola chiave protetta in Java
- macchina virtuale Java
- Componenti Swing in Java
- Parole chiave C ++