top 40 java 8 interview questions answers
I denne veiledningen har vi gitt de viktigste Java 8 intervjuspørsmålene og deres svar med kodeeksempler og forklaringer:
Alle viktige spørsmål som er oppført i denne veiledningen er spesifikke for Java 8. Java har utviklet seg mye (over tid) med introduksjonen av nye versjoner. For hver versjon har vi nye funksjoner knyttet til Java. Alle disse viktige funksjonene vil bli dekket i denne opplæringen.
Dette er svært vanlige spørsmål som du vil bli stilt i alle Java-intervjuer som krever avanserte ferdigheter. Disse konseptene er må-ha hvis du skal vises for noen standard Java-sertifiseringseksamener som Oracle Certified Associate (OCA).
=> Ta en titt på Java Beginners Guide her.
Denne artikkelen vil være veldig godt egnet for både Java-utviklere og Java-testere / automatiseringstestere eller alle som leter etter høyere lønn i samme felt fordi den krever avanserte Java-ferdigheter.
Ofte stilte spørsmål om Java 8 intervju
Q # 1) Liste over de nye funksjonene som ble introdusert i Java 8?
Svar: Nye funksjoner som er introdusert i Java 8 er vervet nedenfor:
- Lambda Expressions
- Metode Referanser
- Valgfri klasse
- Funksjonelt grensesnitt
- Standardmetoder
- Neshorn, JavaScript-motor
- Stream API
- Date API
Q # 2) Hva er funksjonelle grensesnitt?
Svar: Funksjonelt grensesnitt er et grensesnitt som bare har en abstrakt metode. Implementeringen av disse grensesnittene er gitt ved hjelp av et Lambda-uttrykk, noe som betyr at for å bruke Lambda-uttrykket, må du opprette et nytt funksjonelt grensesnitt, eller du kan bruke det forhåndsdefinerte funksjonelt grensesnitt for Java 8 .
Merknaden som brukes for å lage et nytt funksjonelt grensesnitt er “ @FunctionalInterface ”.
Q # 3) Hva er en valgfri klasse?
Svar: Valgfri klasse er en spesiell wrapper-klasse introdusert i Java 8 som brukes til å unngå NullPointerExceptions. Denne siste klassen er tilstede under java.util-pakken. NullPointerExceptions oppstår når vi ikke klarer å utføre Null-kontrollene.
Q # 4) Hva er standardmetodene?
Svar: Standardmetoder er metodene til grensesnittet som har en kropp. Disse metodene, som navnet antyder, bruker standard søkeord. Bruken av disse standardmetodene er 'Bakoverkompatibilitet', noe som betyr at hvis JDK endrer et hvilket som helst grensesnitt (uten standardmetode), vil klassene som implementerer dette grensesnittet bryte.
På den annen side, hvis du legger til standardmetoden i et grensesnitt, vil du kunne tilby standardimplementeringen. Dette påvirker ikke implementeringsklassene.
Syntaks:
public interface questions{ default void print() { System.out.println('www.softwaretestinghelp.com'); } }
Q # 5) Hva er de viktigste egenskapene til Lambda-funksjonen?
Svar: Hovedegenskapene til Lambda-funksjonen er som følger:
- En metode som er definert som Lambda-uttrykk kan overføres som parameter til en annen metode.
- En metode kan eksistere frittstående uten å tilhøre en klasse.
- Det er ikke nødvendig å erklære parametertypen fordi kompilatoren kan hente typen fra parameterens verdi.
- Vi kan bruke parentes når vi bruker flere parametere, men det er ikke nødvendig å ha parentes når vi bruker en enkelt parameter.
- Hvis uttrykkets kropp har en enkelt uttalelse, er det ikke nødvendig å inkludere krøllete bukseseler.
Q # 6) Hva var galt med den gamle datoen og tiden?
Svar: Nedenfor er ulempene med gammel dato og tid:
- Java.util.Date er muterbar og er ikke trådsikker, mens den nye Java 8 Date and Time API er trådsikker.
- Java 8 Date and Time API oppfyller ISO-standardene, mens den gamle datoen og klokkeslettet var dårlig utformet.
- Det har introdusert flere API-klasser for en dato som LocalDate, LocalTime, LocalDateTime, etc.
- Når vi snakker om ytelsen mellom de to, fungerer Java 8 raskere enn det gamle regimet for dato og tid.
Q # 7) Hva er forskjellen mellom Collection API og Stream API?
Svar: Forskjellen mellom Stream API og Collection API kan forstås fra tabellen nedenfor:
Stream API | Samlings-API |
---|---|
Den ble introdusert i Java 8 Standard Edition-versjonen. | Den ble introdusert i Java versjon 1.2 |
Det er ikke bruk for Iterator og Spliterators. | Ved hjelp av forEach kan vi bruke Iterator og Spliterators til å itere elementene og utføre en handling på hvert element eller elementet. |
Et uendelig antall funksjoner kan lagres. | Et tellbart antall elementer kan lagres. |
Forbruk og Iterering av elementer fra Stream-objektet kan bare gjøres en gang. | Forbruk og iterering av elementer fra Collection-objektet kan gjøres flere ganger. |
Den brukes til å beregne data. | Den brukes til å lagre data. |
Q # 8) Hvordan kan du opprette et funksjonelt grensesnitt?
Svar: Selv om Java kan identifisere et funksjonelt grensesnitt, kan du definere en med merknaden
@FunctionalInterface
Når du har definert det funksjonelle grensesnittet, kan du bare ha en abstrakt metode. Siden du bare har en abstrakt metode, kan du skrive flere statiske metoder og standardmetoder.
Nedenfor er programmeringseksemplet til FunctionalInterface skrevet for multiplikasjon av to tall.
@FunctionalInterface // annotation for functional interface interface FuncInterface { public int multiply(int a, int b); } public class Java8 { public static void main(String args()) { FuncInterface Total = (a, b) -> a * b; // simple operation of multiplication of 'a' and 'b' System.out.println('Result: '+Total.multiply(30, 60)); } }
Produksjon:
Q # 9) Hva er et SAM-grensesnitt?
Svar: Java 8 har introdusert konseptet FunctionalInterface som bare kan ha en abstrakt metode. Siden disse grensesnittene bare spesifiserer en abstrakt metode, blir de noen ganger kalt SAM-grensesnitt. SAM står for “Single Abstract Method”.
Q # 10) Hva er metodehenvisning?
hvordan du returnerer en matrise fra en metode i java
Svar: I Java 8 ble en ny funksjon introdusert, kjent som Method Reference. Dette brukes til å referere til metoden for funksjonelt grensesnitt. Den kan brukes til å erstatte Lambda Expression mens du refererer til en metode.
For eksempel: Hvis Lambda-uttrykket ser ut
num -> System.out.println(num)
Da vil den tilsvarende metodehenvisningen være,
System.out::println
der “::” er en operatør som skiller klassenavn fra metodens navn.
Q # 11) Forklar følgende syntaks
String:: Valueof Expression
Svar: Det er en statisk metode referanse til Verdien av metoden for String klasse. System.out :: println er en statisk metodehenvisning til println-metoden for objektet til systemklassen.
Den returnerer den tilsvarende strengrepresentasjonen av argumentet som sendes. Argumentet kan være Character, Integer, Boolean, og så videre.
Sp # 12) Hva er et predikat? Oppgi forskjellen mellom et predikat og en funksjon?
Svar: Predikat er et forhåndsdefinert funksjonelt grensesnitt. Det er under java.util.function.Predicate-pakken. Den godtar bare et enkelt argument som er i formen som vist nedenfor,
Predikere
Predikere | Funksjon |
---|---|
Den har returtypen som boolsk. | Den har returtypen som Objekt. |
Det er skrevet i form av Predikere som godtar et enkelt argument. | Det er skrevet i form av Funksjon som også godtar et enkelt argument. |
Det er et funksjonelt grensesnitt som brukes til å evaluere Lambda Expressions. Dette kan brukes som et mål for en metodereferanse. | Det er også et funksjonelt grensesnitt som brukes til å evaluere Lambda Expressions. I funksjon er T for inngangstype og R for resultattype. Dette kan også brukes som et mål for en Lambda Expression og Method Reference. |
Q # 13) Er det noe galt med følgende kode? Vil det kompilere eller gi noen spesifikke feil?
@FunctionalInterface public interface Test { public C apply(A a, B b); default void printString() { System.out.println('softwaretestinghelp'); } }
Svar: Ja. Koden kompileres fordi den følger den funksjonelle grensesnittspesifikasjonen for å definere bare en enkelt abstrakt metode. Den andre metoden, printString (), er en standardmetode som ikke teller som en abstrakt metode.
Sp # 14) Hva er en Stream API? Hvorfor trenger vi Stream API?
Svar: Stream API er en ny funksjon lagt til i Java 8. Det er en spesiell klasse som brukes til å behandle objekter fra en kilde som Collection.
Vi krever Stream API fordi,
- Den støtter samlede operasjoner som gjør behandlingen enkel.
- Den støtter funksjonell stilprogrammering.
- Det gjør raskere behandling. Derfor er det egnet for bedre ytelse.
- Det tillater parallelle operasjoner.
Sp # 15) Hva er forskjellen mellom grense og hoppe?
Svar: Limiten () -metoden brukes til å returnere strømmen av den angitte størrelsen. For eksempel, Hvis du har nevnt grense (5), vil antall utgangselementer være 5.
La oss se på følgende eksempel. Utgangen her returnerer seks elementer ettersom grensen er satt til 'seks'.
import java.util.stream.Stream; public class Java8 { public static void main(String() args) { Stream.of(0,1,2,3,4,5,6,7,8) .limit(6) /*limit is set to 6, hence it will print the numbers starting from 0 to 5 */ .forEach(num->System.out.print('
'+num)); } }
Produksjon:
Mens Skip () -metoden brukes til å hoppe over elementet.
La oss se på følgende eksempel. I utgangen er elementene 6, 7, 8, noe som betyr at den har hoppet over elementene til den 6. indeksen (fra 1).
import java.util.stream.Stream; public class Java8 { public static void main(String() args) { Stream.of(0,1,2,3,4,5,6,7,8) .skip(6) /* It will skip till 6th index. Hence 7th, 8th and 9th index elements will be printed */ .forEach(num->System.out.print('
'+num)); } }
Produksjon:
Q # 16) Hvordan vil du få den gjeldende datoen og klokkeslettet ved hjelp av Java 8 Date and Time API?
Svar: Programmet nedenfor er skrevet ved hjelp av den nye API-en som ble introdusert i Java 8. Vi har benyttet oss av LocalDate, LocalTime og LocalDateTime API for å få gjeldende dato og klokkeslett.
I den første og andre utskriftsuttalelsen har vi hentet gjeldende dato og klokkeslett fra systemklokken med tidssonen som standard. I den tredje utskriftsuttalelsen har vi brukt LocalDateTime API som vil skrive ut både dato og klokkeslett.
class Java8 { public static void main(String() args) { System.out.println('Current Local Date: ' + java.time.LocalDate.now()); //Used LocalDate API to get the date System.out.println('Current Local Time: ' + java.time.LocalTime.now()); //Used LocalTime API to get the time System.out.println('Current Local Date and Time: ' + java.time.LocalDateTime.now()); //Used LocalDateTime API to get both date and time } }
Produksjon:
Sp # 17) Hva er formålet med limit () -metoden i Java 8?
Svar: Metoden Stream.limit () spesifiserer grensen for elementene. Størrelsen du angir i grensen (X), vil returnere strømmen av størrelsen på 'X'. Det er en metode for java.util.stream.Stream
Syntaks:
limit(X)
Der ‘X’ er størrelsen på elementet.
Q # 18) Skriv et program for å skrive ut 5 tilfeldige tall ved hjelp av forEach i Java 8?
Svar: Programmet nedenfor genererer 5 tilfeldige tall ved hjelp av forEach i Java 8. Du kan sette grensevariabelen til et hvilket som helst tall, avhengig av hvor mange tilfeldige tall du vil generere.
import java.util.Random; class Java8 { public static void main(String() args) { Random random = new Random(); random.ints().limit(5).forEach(System.out::println); /* limit is set to 5 which means only 5 numbers will be printed with the help of terminal operation forEach */ } }
Produksjon:
Sp # 19) Skriv et program for å skrive ut 5 tilfeldige tall i sortert rekkefølge ved hjelp av forEach i Java 8?
Svar: Programmet nedenfor genererer 5 tilfeldige tall ved hjelp av forEach i Java 8. Du kan sette grensevariabelen til et hvilket som helst tall, avhengig av hvor mange tilfeldige tall du vil generere. Det eneste du trenger å legge til her er sortert () -metoden.
import java.util.Random; class Java8 { public static void main(String() args) { Random random = new Random(); random.ints().limit(5).sorted().forEach(System.out::println); /* sorted() method is used to sort the output after terminal operation forEach */ } }
Produksjon:
Q # 20) Hva er forskjellen mellom mellomliggende og terminaloperasjoner i Stream?
Svar: Alle Stream-operasjoner er enten terminal eller mellomliggende. Intermediate Operations er operasjonene som returnerer Stream slik at noen andre operasjoner kan utføres på den Stream. Mellomoperasjoner behandler ikke Stream på anropsstedet, derfor kalles de lat.
Denne typen operasjoner (Intermediate Operations) behandler data når det er utført en terminaloperasjon. Eksempler av mellomdrift er kart og filter.
Terminaloperasjoner starter strømbehandling. Under denne samtalen gjennomgår Stream alle mellomliggende operasjoner. Eksempler av terminaldrift er sum, samle og for hver.
I dette programmet prøver vi først å utføre mellomdrift uten terminaloperasjon. Som du kan se, utføres den første kodeblokken ikke fordi det ikke er noen terminaloperasjon som støtter.
Den andre blokken ble vellykket utført på grunn av terminaloperasjonssummen ().
import java.util.Arrays; class Java8 { public static void main(String() args) { System.out.println('Intermediate Operation won't execute'); Arrays.stream(new int() { 0, 1 }).map(i -> { System.out.println(i); return i; // No terminal operation so it won't execute }); System.out.println('Terminal operation starts here'); Arrays.stream(new int() { 0, 1 }).map(i -> { System.out.println(i); return i; // This is followed by terminal operation sum() }).sum(); } }
Produksjon:
Q # 21) Skrive et Java 8-program for å få summen av alle tallene som er til stede i en liste?
Svar: I dette programmet har vi brukt ArrayList til å lagre elementene. Så, ved hjelp av sum () -metoden, har vi beregnet summen av alle elementene som er tilstede i ArrayList. Deretter konverteres den til Stream og legges til hvert element ved hjelp av mapToInt () og sum () -metoder.
import java.util.*; class Java8 { public static void main(String() args) { ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add(30); list.add(40); list.add(50); // Added the numbers into Arraylist System.out.println(sum(list)); } public static int sum(ArrayList list) { return list.stream().mapToInt(i -> i).sum(); // Found the total using sum() method after // converting it into Stream } }
Produksjon:
Q # 22) Skriv et Java 8-program for å firkantet listen over tall, og filtrer deretter ut tallene større enn 100 og finn deretter gjennomsnittet av de gjenværende tallene?
Svar: I dette programmet har vi tatt en Array of Integers og lagret dem i en liste. Så ved hjelp av mapToInt () har vi kvadratert elementene og filtrert ut tallene større enn 100. Til slutt beregnes gjennomsnittet av det gjenværende tallet (større enn 100).
import java.util.Arrays; import java.util.List; import java.util.OptionalDouble; public class Java8 { public static void main(String() args) { Integer() arr = new Integer() { 100, 100, 9, 8, 200 }; List list = Arrays.asList(arr); // Stored the array as list OptionalDouble avg = list.stream().mapToInt(n -> n * n).filter(n -> n > 100).average(); /* Converted it into Stream and filtered out the numbers which are greater than 100. Finally calculated the average */ if (avg.isPresent()) System.out.println(avg.getAsDouble()); } }
Produksjon:
Q # 23) Hva er forskjellen mellom Stream’s findFirst () og findAny ()?
Svar: Som navnet antyder, brukes findFirst () -metoden til å finne det første elementet fra strømmen, mens findAny () -metoden brukes til å finne et hvilket som helst element fra strømmen.
FindFirst () er predestinarianism i naturen mens findAny () er ikke-deterministisk. I programmering betyr deterministisk at utgangen er basert på systemets inngang eller starttilstand.
Q # 24) Hva er forskjellen mellom Iterator og Spliterator?
Svar: Nedenfor er forskjellene mellom Iterator og Spliterator.
Iterator | Splitter |
---|---|
Den ble introdusert i Java versjon 1.2 | Den ble introdusert i Java SE 8 |
Den brukes til Collection API. | Den brukes til Stream API. |
Noen av iteratmetodene er neste () og hasNext () som brukes til å iterere elementer. | Spliterator-metoden er tryAdvance (). |
Vi må kalle metoden iterator () på Collection Object. | Vi må ringe spliterator () -metoden på Stream Object. |
Itererer bare i sekvensiell rekkefølge. | Itererer i parallell og sekvensiell rekkefølge. |
Q # 25) Hva er forbrukerens funksjonelle grensesnitt?
Svar: Forbrukerens funksjonelle grensesnitt er også et enkelt argumentgrensesnitt (som predikat og funksjon). Den kommer under java.util.function.Consumer. Dette gir ingen verdi.
I programmet nedenfor har vi brukt akseptmetoden for å hente verdien til strengobjektet.
import java.util.function.Consumer; public class Java8 { public static void main(String() args) Consumer str = str1 -> System.out.println(str1); str.accept('Saket'); /* We have used accept() method to get the value of the String Object */ } }
Produksjon:
Q # 26) Hva er leverandørens funksjonelle grensesnitt?
stadier av livssyklus for programvareutvikling
Svar: Leverandørens funksjonelle grensesnitt godtar ikke inngangsparametere. Den kommer under java.util.function.Supplier. Dette returnerer verdien ved hjelp av get-metoden.
I programmet nedenfor har vi brukt get-metoden for å hente verdien av String-objektet.
import java.util.function.Supplier; public class Java8 { public static void main(String() args) { Supplier str = () -> 'Saket'; System.out.println(str.get()); /* We have used get() method to retrieve the value of String object str. */ } }
Produksjon:
Q # 27) Hva er Nashorn i Java 8?
Svar: Nashorn in Java 8 er en Java-basert motor for å utføre og evaluere JavaScript-kode.
Q # 28) Skriv et Java 8-program for å finne det laveste og høyeste antallet av en Stream?
Svar: I dette programmet har vi brukt min () og max () metoder for å få det høyeste og laveste antallet av en Stream. Først og fremst har vi initialisert en strøm som har helheter, og ved hjelp av metoden Comparator.comparing () har vi sammenlignet elementene i strømmen.
Når denne metoden er innlemmet med maks () og min (), vil den gi deg de høyeste og laveste tallene. Det vil også fungere når du sammenligner strengene.
import java.util.Comparator; import java.util.stream.*; public class Java8{ public static void main(String args()) { Integer highest = Stream.of(1, 2, 3, 77, 6, 5) .max(Comparator.comparing(Integer::valueOf)) .get(); /* We have used max() method with Comparator.comparing() method to compare and find the highest number */ Integer lowest = Stream.of(1, 2, 3, 77, 6, 5) .min(Comparator.comparing(Integer::valueOf)) .get(); /* We have used max() method with Comparator.comparing() method to compare and find the highest number */ System.out.println('The highest number is: ' + highest); System.out.println('The lowest number is: ' + lowest); } }
Produksjon:
Sp # 29) Hva er forskjellen mellom Map og flatMap Stream Operation?
Svar: Map Stream-operasjon gir en utgangsverdi per inngangsverdi, mens flatMap Stream-operasjon gir null eller mer utgangsverdi per inngangsverdi.
Karteksempel- Map Stream-operasjon brukes vanligvis til enkel bruk på Stream som den som er nevnt nedenfor.
I dette programmet har vi endret tegnene til “Names” til store bokstaver ved hjelp av kartoperasjon etter å ha lagret dem i en Stream, og ved hjelp av forEach Terminal-operasjonen har vi skrevet ut hvert element.
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Map { public static void main(String() str) { List Names = Arrays.asList('Saket', 'Trevor', 'Franklin', 'Michael'); List UpperCase = Names.stream().map(String::toUpperCase).collect(Collectors.toList()); // Changed the characters into upper case after converting it into Stream UpperCase.forEach(System.out::println); // Printed using forEach Terminal Operation } }
Produksjon:
flatMap Eksempel- flatMap Stream-operasjon brukes til mer kompleks stream-drift.
Her har vi utført flatMap-operasjon på “List of List of type String”. Vi har gitt inngangsnavn som liste, og så har vi lagret dem i en Stream som vi har filtrert ut navnene som starter med ‘S’.
Til slutt, ved hjelp av forEach Terminal-operasjonen, har vi skrevet ut hvert element.
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class flatMap { public static void main(String() str) { List Names = Arrays.asList(Arrays.asList('Saket', 'Trevor'), Arrays.asList('John', 'Michael'), Arrays.asList('Shawn', 'Franklin'), Arrays.asList('Johnty', 'Sean')); /* Created a “List of List of type String” i.e. List Stored names into the list */ List Start = Names.stream().flatMap(FirstName -> FirstName.stream()).filter(s -> s.startsWith('S')) .collect(Collectors.toList()); /* Converted it into Stream and filtered out the names which start with 'S' */ Start.forEach(System.out::println); /* Printed the Start using forEach operation */ } }
Produksjon:
Q # 30) Hva er MetaSpace i Java 8?
Svar: I Java 8 ble en ny funksjon introdusert for lagringsklasser. Området der alle klassene som er lagret i Java 8 heter MetaSpace. MetaSpace har erstattet PermGen.
Till Java 7 ble PermGen brukt av Java Virtual Machine for å lagre klassene. Siden MetaSpace er dynamisk da det kan vokse dynamisk og det ikke har noen størrelsesbegrensning, erstattet Java 8 PermGen med MetaSpace.
Q # 31) Hva er forskjellen mellom Java 8 Intern og Ekstern Iterasjon?
Svar: Forskjellen mellom Intern og Ekstern Iterasjon er listet opp nedenfor.
Intern iterasjon | Ekstern iterasjon |
---|---|
Den ble introdusert i Java 8 (JDK-8). | Den ble introdusert og praktisert i den forrige versjonen av Java (JDK-7, JDK-6 og så videre). |
Den gjentas internt på aggregerte objekter som Collection. | Den gjentas eksternt på de samlede objektene. |
Den støtter funksjonell programmeringsstil. | Den støtter OOPS programmeringsstil. |
Intern Iterator er passiv. | Ekstern Iterator er aktiv. |
Det er mindre feil og krever mindre koding. | Det krever litt mer koding, og det er mer utsatt for feil. |
Q # 32) Hva er JJS?
Svar: JJS er et kommandolinjeverktøy som brukes til å utføre JavaScript-kode på konsollen. I Java 8 er JJS den nye kjørbare filen som er en JavaScript-motor.
Q # 33) Hva er ChronoUnits i Java 8?
Svar: ChronoUnits er enum som introduseres for å erstatte heltallverdiene som brukes i den gamle API-en for å representere måned, dag osv.
Q # 34) Forklar StringJoiner-klassen i Java 8? Hvordan kan vi oppnå sammenføyning av flere strenger ved hjelp av StringJoiner Class?
Svar: I Java 8 ble en ny klasse introdusert i pakken java.util som var kjent som StringJoiner. Gjennom denne klassen kan vi bli med på flere strenger atskilt med avgrensere sammen med å gi prefiks og suffiks til dem.
tidskort-app for iPhone og Android
I programmet nedenfor vil vi lære om å bli med i flere strenger ved hjelp av StringJoiner Class. Her har vi “,” som skilletegn mellom to forskjellige strenger. Så har vi sluttet oss til fem forskjellige strenger ved å legge dem til ved hjelp av add () -metoden. Til slutt skrev du ut String Joiner.
I neste spørsmål nr. 35 vil du lære om å legge til prefiks og suffiks til strengen.
import java.util.StringJoiner; public class Java8 { public static void main(String() args) { StringJoiner stj = new StringJoiner(','); // Separated the elements with a comma in between. stj.add('Saket'); stj.add('John'); stj.add('Franklin'); stj.add('Ricky'); stj.add('Trevor'); // Added elements into StringJoiner “stj” System.out.println(stj); } }
Produksjon:
Q # 35) Skriv et Java 8-program for å legge til prefiks og suffiks til strengen?
Svar: I dette programmet har vi “,” som skilletegn mellom to forskjellige strenger. Vi har også gitt '(' og ')' parenteser som prefiks og suffiks. Deretter kobles fem forskjellige strenger sammen ved å legge dem til ved hjelp av add () -metoden. Til slutt skrev du ut String Joiner.
import java.util.StringJoiner; public class Java8 { public static void main(String() args) { StringJoiner stj = new StringJoiner(',', '(', ')'); // Separated the elements with a comma in between. //Added a prefix '(' and a suffix ')' stj.add('Saket'); stj.add('John'); stj.add('Franklin'); stj.add('Ricky'); stj.add('Trevor'); // Added elements into StringJoiner “stj” System.out.println(stj); } }
Produksjon:
Q # 36) Skriv et Java 8-program for å gjenta en Stream ved hjelp av forEach-metoden?
Svar: I dette programmet gjentar vi en strøm som starter fra 'nummer = 2', etterfulgt av tellevariabelen økte med '1' etter hver iterasjon.
Deretter filtrerer vi tallet hvis resten ikke er null når vi deler det med tallet 2. Vi har også satt grensen som? 5 som betyr at bare 5 ganger vil det gjenta. Til slutt skriver vi ut hvert element ved hjelp av forEach.
import java.util.stream.*; public class Java8 { public static void main(String() args){ Stream.iterate(2, count->count+1) // Counter Started from 2, incremented by 1 .filter(number->number%2==0) // Filtered out the numbers whose remainder is zero // when divided by 2 .limit(5) // Limit is set to 5, so only 5 numbers will be printed .forEach(System.out::println); } }
Produksjon:
Q # 37) Skrive et Java 8-program for å sortere en matrise og deretter konvertere den sorterte matrisen til Stream?
Svar: I dette programmet har vi brukt parallell sortering for å sortere en rekke helheter. Konverterte deretter den sorterte matrisen til Stream, og ved hjelp av forEach har vi skrevet ut hvert element i en Stream.
import java.util.Arrays; public class Java8 { public static void main(String() args) { int arr() = { 99, 55, 203, 99, 4, 91 }; Arrays.parallelSort(arr); // Sorted the Array using parallelSort() Arrays.stream(arr).forEach(n -> System.out.print(n + ' ')); /* Converted it into Stream and then printed using forEach */ } }
Produksjon:
Q # 38) Skriv et Java 8-program for å finne antall strenger i en liste hvis lengde er større enn 5?
Svar: I dette programmet legges fire strenger til i listen ved hjelp av add () -metoden, og deretter har vi med hjelp av Stream og Lambda-uttrykk telt strengene som har en lengde større enn 5.
import java.util.ArrayList; import java.util.List; public class Java8 { public static void main(String() args) { List list = new ArrayList(); list.add('Saket'); list.add('Saurav'); list.add('Softwaretestinghelp'); list.add('Steve'); // Added elements into the List long count = list.stream().filter(str -> str.length() > 5).count(); /* Converted the list into Stream and filtering out the Strings whose length more than 5 and counted the length */ System.out.println('We have ' + count + ' strings with length greater than 5'); } }
Produksjon:
Q # 39) Skrive et Java 8-program for å sammenkoble to Streams?
Svar: I dette programmet har vi opprettet to strømmer fra de to allerede opprettede lister og deretter sammenkoblet dem ved hjelp av en concat () -metode der to lister sendes som et argument. Til slutt skrev du ut elementene i den sammenkoblede strømmen.
import java.util.Arrays; import java.util.List; import java.util.stream.Stream; public class Java8 { public static void main(String() args) { List list1 = Arrays.asList('Java', '8'); List list2 = Arrays.asList('explained', 'through', 'programs'); Stream concatStream = Stream.concat(list1.stream(), list2.stream()); // Concatenated the list1 and list2 by converting them into Stream concatStream.forEach(str -> System.out.print(str + ' ')); // Printed the Concatenated Stream } }
Produksjon:
Q # 40) Skrive et Java 8-program for å fjerne duplikatelementene fra listen?
Svar: I dette programmet har vi lagret elementene i en matrise og konvertert dem til en liste. Deretter har vi brukt stream og samlet den til 'Set' ved hjelp av 'Collectors.toSet ()' -metoden.
import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.stream.Collectors; public class Java8 { public static void main(String() args) { Integer() arr1 = new Integer() { 1, 9, 8, 7, 7, 8, 9 }; List listdup = Arrays.asList(arr1); // Converted the Array of type Integer into List Set setNoDups = listdup.stream().collect(Collectors.toSet()); // Converted the List into Stream and collected it to “Set” // Set won't allow any duplicates setNoDups.forEach((i) -> System.out.print(' ' + i)); } }
Produksjon:
Konklusjon
I denne artikkelen har vi forstått de nye funksjonene som ble introdusert i Java 8. Vi har dekket alle viktige Java 8-intervjuspørsmål og svarene deres i detalj.
Når du har lest denne opplæringen, må du ha fått kunnskap om de nye API-ene for manipulering av dato og klokkeslett, nye funksjoner i Java 8, nye Streaming-API-er sammen med de passende programmeringseksemplene i henhold til konseptet. Disse nye konseptene eller funksjonene er en del av intervjuprosessen når du er ute etter de mer utfordrende Java Positions.
Beste ønsker!!
=> Sjekk ALLE Java-opplæringsprogrammer her.
Anbefalt lesing
- Intervju Spørsmål og svar
- ETL Testing Intervju Spørsmål og svar
- Noen vanskelige manuelle testspørsmål og svar
- Topp 40 C programmeringsintervju Spørsmål og svar
- Topp 40 populære J2EE intervjuspørsmål og svar du bør lese
- Spock Intervjuespørsmål med svar (mest populære)
- 25 Beste Agile Testing Intervju Spørsmål og svar
- Topp 32 beste datastasjonsintervjuspørsmål og svar