logo

Read-Eval-Print Loop (REPL) i Java

De Read-Eval-Print Loop eller REPL er et shell-grensesnitt. Dette grensesnittet leser og evaluerer hver linje med inndata og skriver deretter ut resultatet. De Read-Eval-Print Loop hjelper oss å samhandle med applikasjonens kjøretid tilstede i en bestemt tilstand. Kommandoene leses og evalueres av REPL og skriv ut resultatet. Etter å ha skrevet ut resultatet, går REPL tilbake til starten for å lese, evaluere og skrive ut vår neste input.

Read-Eval-Print Loop (REPL) i Java

Ved å bruke REPL kan vi enkelt skrive og teste Java-koden vår uten å kompilere den og kan se utdataene direkte på konsollen.

Java har ikke REPL allerede?

Definitivt, en REPL må være på et etablert språk som Java . Men ikke alle språk har REPL, og Java er ett av dem. Java-utviklerne har krevd det mest. Java har hatt noe sånt som REPL en stund som Java Beanshell. Men prosjektet var ikke en fullverdig REPL med andre språk. For dette ble Java 9 utgitt i 2016, som leverer et REPL-miljø med full funksjon.

Hvorfor er REPL så nyttig?

Ved å bruke REPL trenger vi ikke å kompilere eller teste Java-koden vår ved å bruke javac-kommandoen. Etter å ha brukt REPL,

  1. Du trenger ikke en redaktør for å skrive Java-programmet.
  2. Du trenger ikke å lagre Java-programmet.
  3. Du trenger ikke å kompilere Java-program.
  4. Du trenger ikke å gjøre redigering hvis noen kompilerings- eller kjøretidsfeil kommer.
  5. Du trenger ikke å gjenta prosessen.
Read-Eval-Print Loop (REPL) i Java

Vi kan evaluere metoder, klasser og utsagn uten å lage en klasse. 'Hello World'-programmet kan også skrives uten å opprette en klasse.

chiranjeevi skuespiller

Krav for bruk av REPL

Det er bare ett krav å bruke REPL , dvs. vi burde ha Java 9 eller høyere versjon i systemet vårt. Hvis Java 9 er installert i systemet vårt, er vi klare til bruk REPL . For å sjekke strømmen versjon av Java i systemet, åpne ledeteksten og skriv inn følgende kommando:

 java -version 

Read-Eval-Print Loop (REPL) i Java

Ved å bruke REPL

Nedenfor er noen eksempler på REPL der vi evaluerer de matematiske uttrykkene, beregner Fibonacci-serien, lager en dynamisk klasse, kjenner historien og modifiserer klassen.

Eksempel 1: Evaluering av matematiske uttrykk

 jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5); 

Beskrivelse:

registeroverføringslogikk

I den første linjen lager vi en variabel 'en' av typen dobbel og setter startverdien 10. Etter det finner vi kvadratet til variabel 'a' og lagrer den i samme variabel. Etter det legger vi ganske enkelt 20 til variabelen 'a'. Jshell vil sette resultatet inn i en midlertidig variabel '' . Deretter utfører vi '/hvem sin' kommando, som viser oss alle de opprettede variablene. Til slutt lager vi en variabel 'data' av typen dobbel og lagre 5thsifferkraft 8.3.

Produksjon:

java-strenger
Read-Eval-Print Loop (REPL) i Java

Eksempel 2: Beregning av Fibonacci-serien

 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)); ...> } 

Beskrivelse:

I de første seks kodelinjene lager vi en metode for Fibonacci-serien. Etter det bruker vi /metoder kommandoen til Jshell, som viser oss alle tilgjengelige metoder. I de neste to linjene tester vi fibo() metode ved å sende heltallsverdier. Vi lager en array arr for å bestemme hvor mange termer vi ønsker å få Fibonacci-serien. Deretter itererer vi hver verdi av arr ved å bruke for hver sløyfe. Vi sender hver verdi av arr til fibo()-metoden og skriver ut returverdien.

Produksjon:

Read-Eval-Print Loop (REPL) i Java

Eksempel 3: REPL for gjenbruk

 jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> } 

Beskrivelse:

java strenglengde

I koden ovenfor lager vi en fibo()-metode med samme returtype og argument som vi har laget før. På dette tidspunktet overstyrer Jshell det forrige 'fibo()' metode med den nåværende. Deretter sender vi hver verdi av arr til funksjonen for å sikre om fibo()-metoden vår overstyres eller ikke.

Produksjon:

Read-Eval-Print Loop (REPL) i Java

Eksempel 4: Definere klassen

 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); ...> } ...> } 

Beskrivelse:

I koden ovenfor lager vi klasse 'Student' , som har Navn, alder, kurs og semester. Vi lager en konstruktør der vi setter verdiene til disse variablene. Etter konstruktøren lager vi en metode som viser verdien av alle variablene for hver forekomst av klassen.

Produksjon:

Read-Eval-Print Loop (REPL) i Java

Eksempel 5: Opprette en forekomst av klassen

 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(); 

Beskrivelse:

kjernespråk i java

I koden ovenfor oppretter vi to forekomster av klassen og sender verdien til konstruktøren for alle klassevariablene. Deretter kjører vi Jshell-kommandoen for å sjekke om s1- og s2-variabler er opprettet eller ikke. Til slutt kaller vi showData()-metoden for å vise data for hver forekomst.

Produksjon:

Read-Eval-Print Loop (REPL) i Java