El Bucle de lectura-avaluació-impressió o REPL és una interfície de shell. Aquesta interfície llegeix i avalua cada línia d'entrada i després imprimeix el resultat. El Bucle de lectura-avaluació-impressió ens ajuda a interactuar amb el nostre temps d'execució de l'aplicació present en un estat específic. Les ordres són llegides i avaluades pel REPL i imprimiu el resultat. Després d'imprimir el resultat, REPL torna al començament per llegir, avaluar i imprimir la nostra següent entrada.
Utilitzant REPL, podem escriure i provar fàcilment el nostre codi Java sense compilar-lo i podem veure la sortida directament a la consola.
Java encara no té REPL?
Definitivament, un REPL ha d'estar en un idioma establert com Java . Però, no tots els idiomes tenen el REPL, i Java és un d'ells. Els desenvolupadors de Java més ho han requerit. Java ha tingut alguna cosa com REPL durant un temps com a Java Beanshell. Però el projecte no era un REPL complet amb altres idiomes. Per això, el 2016, es va llançar Java 9, que ofereix un entorn REPL de funcions completes.
Per què és tan útil REPL?
En utilitzar el REPL, no necessitem compilar ni provar el nostre codi Java amb l'ordre javac. Després d'utilitzar el REPL,
- No cal un editor per escriure el programa Java.
- No cal desar el programa Java.
- No cal compilar programa Java.
- No cal fer edició si hi ha cap error en temps de compilació o d'execució.
- No cal repetir el procés.
Podem avaluar mètodes, classes i sentències sense crear una classe. El programa 'Hello World' també es pot escriure sense crear una classe.
llenguatge pròleg
Requisits per utilitzar REPL
Només hi ha un requisit per utilitzar-lo REPL , és a dir, hauríem de tenir Java 9 o una versió superior al nostre sistema. Si Java 9 està instal·lat al nostre sistema, estem preparats per utilitzar-lo REPL . Per comprovar el corrent versió de Java al vostre sistema, obriu l'indicador d'ordres i escriviu l'ordre següent:
java -version
Utilitzant REPL
A continuació es mostren alguns exemples de REPL en què avaluem les expressions matemàtiques, calculem la sèrie de Fibonacci, creem una classe dinàmica, coneixem la història i modifiquem la classe.
com executar un script a linux
Exemple 1: Avaluació d'expressions matemàtiques
jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5);
Descripció:
A la primera línia, creem una variable 'a' de tipus double i posem el seu valor inicial 10. Després d'això, trobem el quadrat de la variable 'a' i l'emmagatzemem a la mateixa variable. Després d'això, simplement afegim 20 a la variable 'a'. El Jshell posarà el resultat en una variable temporal '' . A continuació, executem el '/de qui' comanda, que ens mostra totes les variables creades. Finalment, creem una variable 'dades' de tipus doble i emmagatzemar el 5thpotència del dígit 8.3.
Sortida:
classe de matemàtiques java
Exemple 2: Càlcul de la sèrie de Fibonacci
jshell> int fibo(int no) (no == 1)) ...> return no;e all possible completions; total possible completions ...> else ...> return fibo(no-1)+fibo(no-2); ...> jshell> /methods jshell> fibo(11) jshell> fibo(12) jshell> int[] arr = { 1,2,3,4,5,6}; jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Descripció:
A les sis primeres línies de codi, creem un mètode per a la sèrie de Fibonacci. Després d'això, fem servir el /mètodes comandament de Jshell, que ens mostra tots els mètodes disponibles. A les dues línies següents, provem el fibo () mètode passant valors enters. Creem una matriu arr per determinar quants termes volem obtenir la sèrie de Fibonacci. A continuació, iterem cada valor d'arr utilitzant per a cada bucle. Passem cada valor de l'arr al mètode fibo() i imprimim el seu valor de retorn.
Sortida:
Exemple 3: REPL per a la reutilització
jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Descripció:
Al codi anterior, creem un mètode fibo() amb el mateix tipus de retorn i argument que hem creat abans. En aquest moment, el Jshell anul·la l'anterior 'fibo ()' mètode amb l'actual. A continuació, passem cada valor de l'arr a la funció per assegurar-nos que el nostre mètode fibo() s'invalida o no.
Sortida:
Exemple 4: Definició de la classe
atoi c
jshell> class Student{ ...> public String Name; ...> public int age; ...> public String course; ...> public int semester; ...> public Student(String Name, int age, String course, int semester){ ...> this.Name=Name; ...> this.age=age; ...> this.course = course; ...> this.semester=semester; ...> } ...> public void showData(){ ...> System.out.println('Name= '+ Name); ...> System.out.println('Age= '+ age); ...> System.out.println('Course= '+ course); ...> System.out.println('Semester= '+semester); ...> } ...> }
Descripció:
En el codi anterior, creem classe 'Estudiant' , que tenen Nom, edat, curs i semestre. Creem un constructor en el qual establim els valors d'aquestes variables. Després del constructor, creem un mètode que mostra el valor de totes les variables per a cada instància de la classe.
Sortida:
Exemple 5: Creació d'una instància de la classe
jshell> Student s1 = new Student( 'Shubham Rastogi', 18, 'MCA', 4); jshell> Student s2 = new Student( 'Kartik Rastogi', 23, 'MCA', 3); jshell> /vars jshell> s1.showData(); jshell> s2.showData();
Descripció:
cadena per xerrar
Al codi anterior, creem dues instàncies de la classe i passem el valor al constructor per a totes les variables de classe. A continuació, executem l'ordre Jshell per comprovar si les variables s1 i s2 es creen o no. Finalment, cridem al mètode showData() per mostrar les dades de cada instància.
Sortida: