Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java 8 Nashorn JavaScript Engine: Prestatieboost & Nieuwe jjs Tool

Met Java 8 wordt Nashorn geïntroduceerd, een aanzienlijk verbeterde JavaScript-engine die de bestaande Rhino vervangt. Nashorn biedt 2 tot 10 keer betere prestaties, omdat het de code direct in het geheugen compileert en de bytecode aan de JVM doorgeeft. Nashorn gebruikt de 'invoke dynamics'-functie, geïntroduceerd in Java 7, om de prestaties te verbeteren.

jjs

Voor de Nashorn-engine introduceert Java 8 een nieuw commandline-tool, jjs, om JavaScript-code in de console uit te voeren.

JS-bestand Interpreteren

Maak en bewaar het bestand sample.js in de map c:\> JAVA.

sample.js

print('Hello World!');

Open de console en gebruik het volgende commando:

C:\JAVA>jjs sample.js

Dit produceert de volgende output:

Hello World!

jjs in Interactieve Modus

Open de console en gebruik het volgende commando:

C:\JAVA>jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>

Argumenten Doorgeven

Open de console en gebruik het volgende commando:

C:\JAVA> jjs -- a b c
jjs> print('letters: ' + arguments.join(", "))
letters: a, b, c
jjs>

JavaScript Aanroepen vanuit Java

Met ScriptEngineManager kan JavaScript-code worden aangeroepen en geïnterpreteerd in Java.

Voorbeeld

Maak het volgende Java-programma aan met een editor naar keuze in, zeg, C:\> JAVA.

Java8Tester.java

Live Demo
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;

public class Java8Tester {
    public static void main(String args[]) {
        ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
        ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");
        String name = "Mahesh";
        Integer result = null;
        try {
            nashorn.eval("print('" + name + "')");
            result = (Integer) nashorn.eval("10 + 2");
        } catch (ScriptException e) {
            System.out.println("Fout bij uitvoeren script: " + e.getMessage());
        }
        System.out.println(result.toString());
    }
}

Resultaat Verifiëren

Compileer de klasse met de javac compiler als volgt:

C:\JAVA>javac Java8Tester.java

Voer nu de Java8Tester uit als volgt:

C:\JAVA>java Java8Tester

Het zou het volgende resultaat moeten produceren:

Mahesh
12

Java Aanroepen vanuit JavaScript

Het volgende voorbeeld legt uit hoe je Java-klassen in JavaScript kunt importeren en gebruiken.

Maak en bewaar sample.js in c:\> JAVA map.

sample.js

var BigDecimal = Java.type('java.math.BigDecimal');
function calculate(amount, percentage) {
    var result = new BigDecimal(amount).multiply(new BigDecimal(percentage)).divide(
        new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);
    return result.toPlainString();
}
var result = calculate(568000000000000000023, 13.9);
print(result);

Open de console en gebruik het volgende commando:

C:\JAVA>jjs sample.js

Het zou de volgende output moeten produceren:

78952000000000000003.20

Java

  1. Java-operators beheersen: typen, syntax en praktische voorbeelden
  2. Java-commentaar: typen, gebruik en best practices
  3. Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
  4. Java Strings beheersen: aanmaken, methodes en best practices
  5. Java interfaces meesteren: concepten, implementatie en best practices
  6. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  7. Java Try-with-resources meesteren: automatische resource management uitgelegd
  8. Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
  9. Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
  10. Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList
  11. Java 8 Nashorn JavaScript Engine: Prestatieboost & Nieuwe jjs Tool