Eigen sleutelwoord in Java - Hoe werkt het oorspronkelijke zoekwoord? (Voorbeeld)

Inhoudsopgave:

Anonim

Inleiding op native trefwoord in Java

Het native trefwoord fungeert als een koppeling tussen de JAVA-taal en een stuk code of bibliotheek geschreven in verschillende talen behalve JAVA, die afhankelijk kan zijn van de machine waarop u werkt. Als het native trefwoord op een methode wordt toegepast, betekent dit dat de methode wordt geïmplementeerd met native code geschreven in een andere taal (zoals C of C ++) via JNI (native interface van JAVA).

Syntaxis

De syntaxis van native code is hetzelfde als de normale functiedefinitie met het trefwoord 'native' toegevoegd aan het begin van de functie.

Bijvoorbeeld:

Public class testing
(public native String testMethod (String parameter);)

Hier is het publiek een toegangsmodificator. Het moet openbaar zijn zodat een ander bestand het kan gebruiken. De tekenreeks is het retourgegevenstype van de functie. Dit kan een geheel getal, teken of Boolean zijn, afhankelijk van het trefwoord. De parameter die aan deze functie wordt doorgegeven, is ook van het gegevenstype string. Alles moet onderklasse worden bewaard.

Na functiedeclaratie noemen we deze functie via een object dat is gemaakt en de bibliotheek is geladen.

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

De hierboven gedefinieerde bibliotheek moet eerst worden geladen en het object wordt gemaakt. Met behulp van dit object wordt de native functie aangeroepen.

Hoe werkt het oorspronkelijke zoekwoord?

Er zouden twee bestanden moeten zijn. De ene bevat JAVA-code, terwijl de andere C / C ++ legacy-code moet hebben. Java-code wordt gebruikt om de oude code aan te roepen. Deze oudere code werkt samen met hardware en retourneert de verwachte uitvoer.

Wanneer de oude code interactie heeft met hardware, volgt deze niet de richtlijnen van JAVA. Deze code zal de gewenste verwerking uitvoeren om de uitvoer te krijgen en de resultaten door te geven aan JNI. De native interface van Java controleert vervolgens in de directory met alle regels die betrekking hebben op de native code (dit komt onder een bestand met de naam javah.exe in SDK). JNI is ontworpen als onderdeel van de Java-toolkit. Na deze verwerking publiceert de JAVA de uitgangen in de JAVA-taal zelf. Wanneer we het programma in JAVA maken, moeten we ervoor zorgen dat er een variabele / gegevensstroomkoppeling is tussen het JAVA-bestand en het oude bestand, zodat er een soepele gegevensstroom tussen beide is.

Stappen die uitleggen hoe u gebruik kunt maken van native keywords worden hieronder gegeven:

  1. Schrijf de JAVA-code met de native methode, gedeelde bibliotheek geladen en sla deze op met "bestandsnaam.JAVA".
  2. Compileer JAVA-code en converteer de code naar bytecode.
  3. Maak een C / C ++ header-bestand met een native functiehandtekening die moet worden aangeroepen.
  4. Schrijf C / C ++ code heeft de implementatie van een native methode.
  5. Voer het JAVA-uitvoerbare bestand uit om de resultaten te bekijken.

Voorbeeld

We moeten code in Eclipse schrijven en de code uitvoeren om een ​​bibliotheek te maken waarmee de C-code wordt geïmplementeerd.

Code : pakket 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);
)
)

Na het opslaan van deze code in de nieuwe "klasse" van het Java-project. We moeten een runomgeving instellen om een ​​headerbestand te genereren.

Wanneer we dit uitvoeren, moeten we een bibliotheek laten genereren.

Output:

Hier hebben we het header-bestand gemaakt van de java-code die zal fungeren als een link tussen de native code en de java-taal.

Voordelen van native sleutelwoord in Java

  1. Het biedt een extra voordeel voor JAVA om te communiceren met de code die in andere talen is geschreven en het werk te verminderen om dezelfde code in JAVA te laten schrijven, waardoor de code-redundantie wordt verminderd.
  2. Het verbetert de algemene codeprestaties. Omdat de code in andere talen is geschreven, kan deze sneller werken wanneer deze werkt met de machinetaal in vergelijking met JAVA. We kunnen vervolgens het JAVA-programma gebruiken om deze code aan te roepen.
  3. Met deze aanpak kunnen we direct systeemoproepen doen. De kans op externe interferentie verminderen en de snelheid van code-uitvoering verbeteren.
  4. U kunt een vooraf geladen bibliotheek (geschreven in een andere taal dan JAVA) dynamisch gebruiken met een willekeurige rijcode die is geschreven in JAVA en toch een antwoord krijgen in JAVA.
  5. Het maakt het toegankelijk voor JAVA om de hardwarebronnen te bereiken die beschikbaar zijn om alleen door andere talen te worden gebruikt.
  6. Als u al een platformafhankelijke code heeft opgebouwd voor uw toepassing en waarvan de functies niet worden ondersteund via JAVA, kunnen we in dat geval een native code hebben en deze native code koppelen aan JAVA via native keyword.

Reglement

  1. Het native trefwoord moet vóór de methode naam worden gebruikt.
  2. Native methode-declaratie heeft niet de body en moet eindigen met een puntkomma omdat deze methoden niet zijn gedefinieerd in JAVA maar aanwezig zijn in de taal C / C ++.
  3. Inheemse methoden kunnen niet als een abstracte methode worden verklaard.
  4. Aangezien er geen zekerheid is als de vorige oude code is geschreven in overeenstemming met de IEEE 754-norm (de IEEE-norm voor drijvende komma is een technische norm voor drijvende komma die in 1985 is vastgesteld door het Institute of Electrical and Electronics Engineers), we kunnen deze native methoden niet als strictftp verklaren.
  5. De Java Native Interface (JNI) -specificatie is ontworpen door JAVA om de regels en verklaringen te definiëren voor het implementeren van native methoden, zoals conversie van gegevenstypen tussen Java en de native code.

Conclusie

Het native sleutelwoord is de brug tussen de native talen en JAVA. Dit kan worden gebruikt als een kritieke link als de interactie van onze software met hardware meer is om de efficiënte code te krijgen met behulp van reeds bestaande code. Het maakt de implementatie minder goed in vergelijking met het helemaal opnieuw ontwerpen van een nieuwe applicatiecode, waar deze kan worden vermeden.

Aanbevolen artikelen

Dit is een gids voor native sleutelwoord in Java. Hier bespreken we hoe het Native-trefwoord werkt met de voorbeelden, de voordelen en de regels. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. JTabbedPane in Java
  2. Beschermd trefwoord in Java
  3. Java Virtual Machine
  4. Swing componenten in Java
  5. C ++ Trefwoorden