top 40 java 8 interview questions answers
V tej vadnici smo podali najpomembnejša vprašanja za intervjuje Java 8 in njihove odgovore s primeri in razlago kode:
Vsa pomembna vprašanja, navedena v tej vadnici, so specifična za Javo 8. Java se je z uvedbo novih različic zelo razvila (sčasoma). Z vsako različico imamo nove funkcije, povezane z Javo. Vse te pomembne funkcije bodo zajete v tej vadnici.
To so zelo pogosta vprašanja, ki jih boste zastavljali na vseh intervjujih za Javo, ki zahtevajo napredne veščine. Te koncepte morate imeti, če se želite udeležiti kakršnih koli standardnih izpitov za certificiranje Java, kot je Oracle Certified Associate (OCA).
=> Tukaj si oglejte Vodnik za začetnike Java.
Ta članek bo zelo primeren tako za razvijalce Java, kot tudi za preizkuševalce Java / preizkuševalce avtomatizacije ali za vse, ki iščejo višje plačilo na istem področju, ker zahtevajo napredna znanja Java.
Najpogostejša vprašanja o intervjujih za Java 8
V # 1) Naštejte nove funkcije, uvedene v Javi 8?
Odgovor: Spodaj so navedene nove funkcije, ki so predstavljene v Javi 8:
- Lambda izrazi
- Reference metode
- Izbirni razred
- Funkcionalni vmesnik
- Privzete metode
- Nosorog, motor JavaScript
- API za tok
- Datum API
V # 2) Kaj so funkcionalni vmesniki?
Odgovor: Funkcionalni vmesnik je vmesnik, ki ima samo eno abstraktno metodo. Izvedba teh vmesnikov je zagotovljena z uporabo Lambda Expression, kar pomeni, da morate za uporabo Lambda Expression ustvariti nov funkcionalni vmesnik ali pa uporabiti vnaprej določen funkcionalni vmesnik Java 8 .
Pripis, ki se uporablja za ustvarjanje novega funkcionalnega vmesnika, je ' @FunctionalInterface '.
V # 3) Kaj je izbirni razred?
Odgovor: Izbirni razred je poseben razred ovojnic, uveden v Javi 8, ki se uporablja za izogibanje NullPointerExceptions. Ta zadnji razred je prisoten v paketu java.util. NullPointerExceptions se zgodi, če ne izvedemo null preverjanj.
V # 4) Katere so privzete metode?
Odgovor: Privzete metode so metode vmesnika, ki ima telo. Te metode, kot že ime pove, uporabljajo privzete ključne besede. Uporaba teh privzetih metod je »Povratna združljivost«, kar pomeni, da če JDK spremeni kateri koli vmesnik (brez privzete metode), bodo razredi, ki izvajajo ta vmesnik, prekinjeni.
Po drugi strani pa, če dodate privzeto metodo v vmesnik, boste lahko zagotovili privzeto izvedbo. To ne bo vplivalo na izvedbene razrede.
Sintaksa:
public interface questions{ default void print() { System.out.println('www.softwaretestinghelp.com'); } }
V # 5) Katere so glavne značilnosti Lambda funkcije?
Odgovor: Glavne značilnosti Lambda funkcije so naslednje:
- Metoda, ki je opredeljena kot Lambda Expression, se lahko prenese kot parameter na drugo metodo.
- Metoda lahko obstaja samostojno, ne da bi pripadala razredu.
- Ni treba razglasiti tipa parametra, ker ga lahko prevajalnik pridobi iz vrednosti parametra.
- Pri uporabi več parametrov lahko uporabimo oklepaje, vendar pri uporabi enega samega parametra ni treba imeti oklepajev.
- Če ima telo izraza en stavek, potem ni treba vključevati zavitih oklepajev.
Q # 6) Kaj je bilo narobe s starim datumom in uro?
Odgovor: Spodaj so navedene pomanjkljivosti starega datuma in ure:
- Java.util.Date je spremenljiv in ni varen za nit, novi API za datum in čas Java 8 pa je varen za nit.
- API za datum in čas Java 8 ustreza ISO standardom, stari datum in čas pa sta bila slabo zasnovana.
- Uvedel je več razredov API za datum, kot so LocalDate, LocalTime, LocalDateTime itd.
- Če govorimo o zmogljivosti med njima, Java 8 deluje hitreje kot stari režim datuma in časa.
V # 7) Kakšna je razlika med API-jem za zbiranje in API-jem za pretok?
Odgovor: Razliko med Stream API in Collection API lahko razberemo iz spodnje tabele:
API za tok | API za zbiranje |
---|---|
Predstavljen je bil v različici Java 8 Standard Edition. | Predstavljen je bil v različici Java 1.2 |
Iterator in spliteratorji niso uporabni. | S pomočjo forEach lahko z iteratorjem in spliteratorji ponovimo elemente in izvedemo dejanje za vsak element ali element. |
Shrani se lahko neskončno število funkcij. | Shrani se lahko prešteto število elementov. |
Porabo in ponovitev elementov iz predmeta Stream lahko izvedemo samo enkrat. | Porabo in ponovitev elementov iz predmeta Collection lahko izvedemo večkrat. |
Uporablja se za izračun podatkov. | Uporablja se za shranjevanje podatkov. |
Q # 8) Kako lahko ustvarite funkcijski vmesnik?
Odgovor: Čeprav lahko Java prepozna funkcijski vmesnik, ga lahko določite s pripisom
@FunctionalInterface
Ko definirate funkcionalni vmesnik, lahko uporabite samo eno abstraktno metodo. Ker imate samo eno abstraktno metodo, lahko napišete več statičnih metod in privzetih metod.
Spodaj je primer programiranja FunctionalInterface, napisan za množenje dveh števil.
@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)); } }
Izhod:
V # 9) Kaj je vmesnik SAM?
Odgovor: Java 8 je predstavil koncept Funkcionalnega vmesnika, ki ima lahko samo eno abstraktno metodo. Ker ti vmesniki določajo samo eno abstraktno metodo, jih včasih imenujejo tudi vmesniki SAM. SAM je kratica za 'Single Abstract Method'.
Q # 10) Kaj je referenca metode?
sql vprašanja in odgovori za sveže pdf
Odgovor: V Javi 8 je bila predstavljena nova funkcija, znana kot Reference Reference. To se uporablja za sklicevanje na metodo funkcionalnega vmesnika. Uporablja se lahko za nadomeščanje Lambda Expression ob sklicevanju na metodo.
Na primer: Če je Lambda Expression videti
num -> System.out.println(num)
Potem bi bil ustrezen sklic na metodo,
System.out::println
kjer je “::” operator, ki razlikuje ime razreda od imena metode.
Q # 11) Pojasnite naslednjo sintakso
String:: Valueof Expression
Odgovor: To je statična referenca metode na ValueOf metoda Vrvica razred. System.out :: println je statična referenca metode na metodo println zunanjega predmeta razreda System.
Vrne ustrezno nizno predstavitev argumenta, ki je poslan. Argument je lahko znak, celo število, logična vrednost itd.
V # 12) Kaj je predikat? Navedite razliko med predikatom in funkcijo?
Odgovor: Predikat je vnaprej določen funkcionalni vmesnik. Nahaja se v paketu java.util.function.Predicate. Sprejema samo en argument, ki je v obliki, kot je prikazano spodaj,
Predikat
Predikat | Funkcija |
---|---|
Ima vrnitev kot logično vrednost. | Ima vrsto vrnitve kot objekt. |
Zapisano je v obliki Predikat ki sprejme en argument. | Zapisano je v obliki Funkcija ki sprejme tudi en sam argument. |
To je funkcijski vmesnik, ki se uporablja za ovrednotenje Lambda izrazov. To se lahko uporabi kot cilj za referenco metode. | Je tudi funkcijski vmesnik, ki se uporablja za ovrednotenje Lambda izrazov. V funkciji je T za vrsto vnosa, R pa za vrsto rezultata. To se lahko uporabi tudi kot tarča za Lambda izraz in sklic na metode. |
V # 13) Je kaj narobe z naslednjo kodo? Ali bo prevedel ali dal kakšno posebno napako?
@FunctionalInterface public interface Test { public C apply(A a, B b); default void printString() { System.out.println('softwaretestinghelp'); } }
Odgovor: Da. Koda se bo prevedla, ker sledi specifikaciji funkcionalnega vmesnika, ki opredeljuje samo eno abstraktno metodo. Druga metoda, printString (), je privzeta metoda, ki se ne šteje za abstraktno metodo.
V # 14) Kaj je Stream API? Zakaj potrebujemo Stream API?
Odgovor: Stream API je nova funkcija, dodana v Javi 8. Je poseben razred, ki se uporablja za obdelavo predmetov iz vira, kot je Collection.
API Stream potrebujemo, ker,
- Podpira agregatne operacije, kar olajša obdelavo.
- Podpira programiranje v funkcionalnem slogu.
- Omogoča hitrejšo obdelavo. Zato je primeren za boljše delovanje.
- Omogoča vzporedne operacije.
V # 15) Kakšna je razlika med limitom in preskokom?
Odgovor: Za vrnitev toka določene velikosti se uporablja metoda limit (). Na primer, Če ste omenili omejitev (5), bi bilo število izhodnih elementov 5.
Upoštevajmo naslednji primer. Izhod tukaj vrne šest elementov, saj je omejitev nastavljena na 'šest'.
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)); } }
Izhod:
Medtem se metoda preskoči () uporablja za preskok elementa.
Upoštevajmo naslednji primer. V izhodu so elementi 6, 7, 8, kar pomeni, da je elemente preskočil do 6. indeksa (začenši z 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)); } }
Izhod:
Q # 16) Kako boste dobili trenutni datum in uro z uporabo Java 8 Date and Time API?
Odgovor: Spodnji program je napisan s pomočjo novega API-ja, uvedenega v Javi 8. Za pridobitev trenutnega datuma in ure smo uporabili API-je LocalDate, LocalTime in LocalDateTime.
V prvem in drugem izpisu sta trenutna datum in ura priklicana iz sistemske ure s privzeto nastavljenim časovnim pasom. V tretji izjavi o tiskanju smo uporabili API LocalDateTime, ki bo natisnil datum in uro.
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 } }
Izhod:
V # 17) Kaj je namen metode limit () v Javi 8?
Odgovor: Metoda Stream.limit () določa omejitev elementov. Velikost, ki jo navedete v omejitvi (X), bo vrnila tok velikosti 'X'. To je metoda java.util.stream.Stream
Sintaksa:
limit(X)
Kjer je 'X' velikost elementa.
V # 18) Napišite program za tiskanje 5 naključnih števil s pomočjo forEach v Javi 8?
Odgovor: Spodnji program ustvari 5 naključnih števil s pomočjo forEach v Javi 8. Mejno spremenljivko lahko nastavite na poljubno število, odvisno od tega, koliko naključnih števil želite ustvariti.
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 */ } }
Izhod:
Q # 19) Napišite program za tiskanje 5 naključnih števil v razvrščenem vrstnem redu z uporabo forEach v Javi 8?
Odgovor: Spodnji program ustvari 5 naključnih števil s pomočjo forEach v Javi 8. Mejno spremenljivko lahko nastavite na poljubno število, odvisno od tega, koliko naključnih števil želite ustvariti. Edino, kar morate tukaj dodati, je metoda sorted ().
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 */ } }
Izhod:
V # 20) Kakšna je razlika med vmesnimi in terminalskimi operacijami v toku?
Odgovor: Vse operacije pretoka so bodisi terminalske bodisi vmesne. Vmesne operacije so operacije, ki vrnejo tok, tako da je na njem mogoče izvesti nekatere druge operacije. Vmesne operacije ne obdelajo toka na mestu klica, zato se imenujejo leni.
Te vrste operacij (vmesne operacije) obdelujejo podatke, ko je izvedena operacija terminala. Primeri vmesnega delovanja so zemljevid in filter.
Terminalske operacije sprožijo obdelavo toka. Med tem klicem tok opravi vse vmesne operacije. Primeri operacij terminala so sum, Collect in forEach.
V tem programu najprej poskušamo izvesti vmesno operacijo brez delovanja terminala. Kot lahko vidite, se prvi blok kode ne bo izvedel, ker ni podprte operacije terminala.
Drugi blok je bil uspešno izveden zaradi vsote operacije terminala ().
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(); } }
Izhod:
V # 21) Napišite program Java 8, da dobite vsoto vseh številk, ki so na seznamu?
Odgovor: V tem programu smo za shranjevanje elementov uporabili ArrayList. Nato smo s pomočjo metode sum () izračunali vsoto vseh elementov, ki so prisotni v ArrayList. Nato se pretvori v tok in doda vsak element s pomočjo metod mapToInt () in sum ().
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 } }
Izhod:
V # 22) Napišite program Java 8, da bo seznam številk postavil v kvadrat, nato filtriral številke, večje od 100, in nato našel povprečje preostalih števil?
Odgovor: V tem programu smo zajeli celo število in jih shranili na seznam. Nato smo s pomočjo mapToInt () elemente popravili na kvadrat in filtrirali številke, večje od 100. Na koncu se izračuna povprečje preostalega števila (večje od 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()); } }
Izhod:
Q # 23) Kakšna je razlika med Stream’s findFirst () in findAny ()?
Odgovor: Kot že ime pove, se za iskanje prvega elementa iz toka uporablja metoda findFirst (), medtem ko se za iskanje katerega koli elementa iz toka uporablja metoda findAny ().
FindFirst () je po naravi predestinarizem, medtem ko je findAny () nedeterminističen. Pri programiranju Determinic pomeni, da izhod temelji na vhodnem ali začetnem stanju sistema.
kako prenesti polja v javi -
Q # 24) Kakšna je razlika med Iteratorjem in Spliteratorjem?
Odgovor: Spodaj so razlike med Iteratorjem in Spliteratorjem.
Iterator | Razdelilnik |
---|---|
Predstavljen je bil v različici Java 1.2 | Predstavljen je bil v Java SE 8 |
Uporablja se za API za zbiranje. | Uporablja se za Stream API. |
Nekatere metode ponavljanja so next () in hasNext (), ki se uporabljajo za ponavljanje elementov. | Metoda spliteratorja je tryAdvance (). |
Pri predmetu zbirke moramo poklicati metodo iterator (). | Na objektu Stream moramo poklicati metodo spliterator (). |
Vpliva samo v zaporednem vrstnem redu. | Medsebojno deluje v vzporednem in zaporednem vrstnem redu. |
V # 25) Kaj je potrošniški funkcionalni vmesnik?
Odgovor: Potrošniški funkcionalni vmesnik je tudi en argumentni vmesnik (na primer predikat in funkcija). Na voljo je pod java.util.function.Consumer. To ne vrne nobene vrednosti.
V spodnjem programu smo uporabili metodo accept za pridobitev vrednosti predmeta String.
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 */ } }
Izhod:
Q # 26) Kaj je dobaviteljski funkcionalni vmesnik?
Odgovor: Funkcijski vmesnik dobavitelja ne sprejema vhodnih parametrov. Na voljo je pod java.util.function.Supplier. To vrne vrednost z uporabo metode get.
V spodnjem programu smo uporabili metodo get za pridobivanje vrednosti predmeta String.
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. */ } }
Izhod:
V # 27) Kaj je Nashorn v Javi 8?
Odgovor: Nashorn v Javi 8 je mehanizem za izvajanje in ocenjevanje kode JavaScript, ki temelji na Javi.
Q # 28) Napiši program Java 8, da poiščeš najmanjše in največje število toka?
Odgovor: V tem programu smo uporabili metode min () in max (), da dobimo največje in najnižje število toka. Najprej smo inicializirali tok, ki ima cela števila, in s pomočjo metode Comparator.comparing () primerjali elemente toka.
Ko je ta metoda vključena z max () in min (), vam bo dala najvišje in najnižje številke. Delovalo bo tudi pri primerjavi nizov.
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); } }
Izhod:
V # 29) Kakšna je razlika med pretokom map in flatMap?
Odgovor: Operacija Map Stream daje eno izhodno vrednost na vhodno vrednost, medtem ko operacija flatMap Stream daje nič ali več izhodne vrednosti na vhodno vrednost.
Primer zemljevida- Delovanje Map Streama se običajno uporablja za preprosto upravljanje v toku, kot je spodaj omenjeno.
V tem programu smo znake »Imena« spremenili v velike črke z uporabo zemljevida, potem ko smo jih shranili v tok, s pomočjo operacije forEach Terminal pa smo natisnili vsak 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 } }
Izhod:
Primer flatMap- Ravnanje FlatMap Stream se uporablja za bolj zapleteno delovanje Stream.
Tu smo izvedli operacijo flatMap na “Seznam seznama vrste String”. Imena vnosov smo dali kot seznam, nato pa smo jih shranili v tok, v katerem smo filtrirali imena, ki se začnejo z 'S'.
Na koncu smo s pomočjo operacije forEach Terminal natisnili vsak 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 */ } }
Izhod:
Q # 30) Kaj je MetaSpace v Javi 8?
Odgovor: V Javi 8 je bila predstavljena nova funkcija za shranjevanje razredov. Območje, kjer se vsi razredi, ki so shranjeni v Javi 8, imenujejo MetaSpace. MetaSpace je nadomestil PermGen.
Do Java 7 je PermGen uporabljal Java Virtual Machine za shranjevanje razredov. Ker je MetaSpace dinamičen, saj lahko dinamično raste in nima nobenih omejitev velikosti, je Java 8 PermGen zamenjal z MetaSpaceom.
Q # 31) Kakšna je razlika med notranjo in zunanjo iteracijo Java 8?
Odgovor: Razlika med notranjo in zunanjo ponovitvijo je navedena spodaj.
Notranja ponovitev | Zunanja ponovitev |
---|---|
Predstavljen je bil v Javi 8 (JDK-8). | Uvedena in izvajana je bila v prejšnji različici Jave (JDK-7, JDK-6 itd.). |
Interno ponovi združene predmete, kot je Zbirka. | Zunaj se ponovi na združenih predmetih. |
Podpira slog funkcionalnega programiranja. | Podpira slog programiranja OOPS. |
Notranji Iterator je pasiven. | Zunanji Iterator je aktiven. |
Je manj zmoten in zahteva manj kodiranja. | Zahteva malo več kodiranja in je bolj nagnjeno k napakam. |
V # 32) Kaj je JJS?
Odgovor: JJS je orodje ukazne vrstice, ki se uporablja za izvajanje kode JavaScript na konzoli. V Javi 8 je JJS nova izvedljiva datoteka, ki je mehanizem JavaScript.
V # 33) Kaj je ChronoUnits v Javi 8?
Odgovor: ChronoUnits je enum, ki je uveden, da nadomesti vrednosti Integer, ki se uporabljajo v starem API-ju za predstavitev meseca, dneva itd.
V # 34) Razložite razred StringJoiner v Javi 8? Kako lahko dosežemo združevanje več nizov z uporabo razreda StringJoiner?
Odgovor: V Javi 8 je bil v paketu java.util uveden nov razred, ki je bil znan kot StringJoiner. Skozi ta razred lahko združimo več nizov, ločenih z ločili, ter jim predpono in pripono.
V spodnjem programu bomo izvedeli več o združevanju več nizov z uporabo StringJoiner Class. Tu imamo »,« kot ločilo med dvema različnima nizoma. Nato smo združili pet različnih nizov, tako da smo jih dodali s pomočjo metode add (). Na koncu natisnite String Joiner.
V naslednjem vprašanju št. 35 boste izvedeli o dodajanju predpone in končnice v niz.
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); } }
Izhod:
V # 35) Napišite program Java 8, da dodate niz predpono in pripono v niz?
Odgovor: V tem programu imamo »,« kot ločilo med dvema različnima nizoma. Prav tako smo kot predpono in pripono podali oklepaje »(« in »)«. Nato se pet različnih nizov združi tako, da jih doda s pomočjo metode add (). Na koncu natisnite 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); } }
Izhod:
Q # 36) Napisati program Java 8 za ponovitev toka z metodo forEach?
Odgovor: V tem programu ponavljamo tok, začenši s številko = 2, čemur sledi spremenljivka štetja, ki se po vsaki ponovitvi poveča za 1.
Nato filtriramo število, katerega ostanek ni nič, če ga delimo s številom 2. Prav tako smo nastavili omejitev kot? 5, kar pomeni, da se bo le petkrat ponovilo. Na koncu tiskamo vsak element z uporabo 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); } }
Izhod:
Q # 37) Napišite program Java 8 za razvrščanje polja in nato pretvorjeno razvrščeno polje v Stream?
Odgovor: V tem programu smo uporabili vzporedno razvrščanje za razvrščanje polja Celih števil. Nato smo sortirano matriko pretvorili v tok in s pomočjo forEach smo natisnili vsak element toka.
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 */ } }
Izhod:
Q # 38) Napišite program Java 8, da najdete število nizov na seznamu, katerega dolžina je večja od 5?
Odgovor: V tem programu so na seznam dodani štirje nizi z metodo add (), nato pa smo s pomočjo izraza Stream in Lambda prešteli nize, katerih dolžina je večja od 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'); } }
Izhod:
Q # 39) Napisati program Java 8 za združitev dveh tokov?
Odgovor: V tem programu smo iz dveh že ustvarjenih seznamov ustvarili dva toka in ju nato združili z metodo concat (), v kateri sta dva argumenta posredovana. Na koncu so natisnili še elemente združenega toka.
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 } }
Izhod:
Vprašanja in odgovori za testiranje avtomatizacije selena za izkušene
Q # 40) Napisati program Java 8 za odstranitev podvojenih elementov s seznama?
Odgovor: V tem programu smo elemente shranili v matriko in jih pretvorili v seznam. Nato smo tok uporabili in ga z uporabo metode „Collectors.toSet ()“ zbrali za nastavitev.
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)); } }
Izhod:
Zaključek
V tem članku smo razumeli nove funkcije, uvedene v Javi 8. Podrobno smo obravnavali vsa glavna vprašanja v zvezi z intervjuji Java 8 in njihove odgovore.
Ko ste prebrali to vadnico, ste morali pridobiti znanje o novih API-jih za manipulacijo z datumom in časom, novih funkcijah Java 8, novih API-jih za pretakanje, skupaj s primeri primernega programiranja po konceptu. Ti novi koncepti ali funkcije so del procesa razgovora, ko ste pripravljeni na zahtevnejše položaje Java.
Vse najboljše!!
=> Tukaj preverite VSE Vadnice za Java.
Priporočeno branje
- Vprašanja in odgovori za intervjuje
- Vprašanja in odgovori za preizkušanje ETL
- Nekaj zapletenih ročnih preizkusov Vprašanja in odgovori
- Najboljših 40 programerskih vprašanj in odgovorov za programiranje
- 40 najbolj priljubljenih vprašanj in odgovorov za J2EE, ki bi jih morali prebrati
- Vprašanja za intervju z Spockom (odgovori) (najbolj priljubljeni)
- 25 najboljših agilnih preizkusnih vprašanj in odgovorov
- 32 najboljših vprašanj in odgovorov za intervju z Datastage