Inleiding tot Java 8 Interviewvragen en antwoord

Java 8 is een nieuw platform dat nieuw is uitgebracht met nieuwe bibliotheken en klassen. Meestal zijn deze functies gericht op het hebben van een schonere en compacte code. De nieuwe functies die in deze versie zijn toegevoegd, kunnen worden vermeld als Lambda-expressies, methodeverwijzingen, optionele, functionele interface en standaardmethoden, Nashorn, Stream en Date API. De behoefte aan verandering in Java was om efficiënte Multi-Core CPU's efficiënt te gebruiken en om FP-functies te gebruiken.

Hieronder staan ​​de belangrijkste vragen die in het interview zijn gesteld:

Als je nu op zoek bent naar een baan die gerelateerd is aan Java 8, moet je je voorbereiden op de Java 8-interviewvragen van 2019. Het is waar dat elk interview anders is volgens de verschillende functieprofielen. Hier hebben we de belangrijke Java 8-interviewvragen en -antwoorden voorbereid die u zullen helpen succes te behalen in uw interview. Deze interviewvragen zijn als volgt verdeeld in twee delen:

Deel 1 - Java 8 Interviewvragen (basis)

Dit eerste deel behandelt basisvragen en antwoorden over Java 8-vragen

Q1. Waarin verschilt Java 8 van eerdere Java-versies?

Antwoord:
Verschillende Java-versies zijn als volgt:

  • Datum-API: het is een verbeterde API die een door JodaTime geïnspireerde datum-API is.
  • Stream API: dit is een speciale iteratorklasse die helpt bij het verwerken van het verzamelen van objecten op een functionele manier.
  • Lambda-expressie: dit is een nieuwe taalfunctie waarmee verschillende acties die als objecten worden uitgevoerd, kunnen worden behandeld.
  • Methodeverwijzing: dit helpt bij het definiëren van Lambda-expressies door rechtstreeks naar verschillende methoden te verwijzen door hun namen te gebruiken.
  • Optioneel: dit is een speciale wrapper-klasse die helpt bij het opgeven van optionele functies.
  • Functionele interface: dit is een interface met maximaal één abstracte methode en de implementatie ervan wordt verzorgd door Lambda-expressie
  • Nashorn Javascript Engine: het is een op Java gebaseerde engine die wordt gebruikt voor het uitvoeren en evalueren van JavaScript-code.

Q2. Is het mogelijk om twee interfaces te implementeren met een standaardmethode met dezelfde naam en handtekening? Leg uit met een voorbeeld.

Antwoord:
Dit zijn de basisvragen voor Java 8-interviews die in een interview worden gesteld. Beschouw de volgende code met implementeert twee interfaces
public interface DefaultMethodInterface (
default public void defaultMethod()(
System.out.println("I am in Default method Interface I");
)
)
public interface DefaultMethodInterface2 (
default public void defaultMethod()(
System.out.println("I am in Default method Interface II");
)
)
public class HelloJava8 implements DefaultMethodInterface, DefaultMethodInterface2 (
public static void main(String() args)(
DefaultMethodInterface defMethIn = new HelloJava();
defMethIn.defaultMethod();
)
)

Hier geeft de compiler een foutmelding die zegt: "Dubbele standaardmethoden". Daarom is het niet mogelijk om twee interfaces met dezelfde naam en handtekening te implementeren.

Q3. Is het mogelijk om onze eigen functionele interface te definiëren? Leg de regels uit om een ​​functionele interface te definiëren.

Antwoord:
Het is mogelijk om onze eigen functionele interfaces te definiëren. Een gebruiker kan de @FunctionalInterface-annotatie van Java SE 8 gebruiken om een ​​interface als functionele interface te markeren. De volgende regels moeten in gedachten worden gehouden bij het maken van een functionele interface.

  1. Er moet slechts één interface worden gedefinieerd met slechts één abstracte methode
  2. Meer dan bij abstracte methoden kan niet worden gedefinieerd
  3. Een gebruiker moet gebruik maken van @FunctionalInterface-annotatie in de interfacedefinitie.
  4. Een willekeurig aantal verschillende methoden, zoals de standaardmethode, statische methode, enz. Kunnen worden gedefinieerd.
  5. We kunnen de methode java.lang.Object class als een abstracte methode overschrijven en deze wordt niet als een abstracte methode geteld.

Laten we doorgaan naar de volgende Java 8-interviewvragen.

Q4. Wat is optioneel in Java 8? Leg de voordelen uit.

Antwoord:
Optioneel is een laatste les die wordt geïntroduceerd als onderdeel van Java SE 8. Het is onderdeel van java.util.package. Het kan worden gebruikt om optionele waarden weer te geven die al dan niet bestaan. Dit kan een waarde als één waarde of nulwaarde hebben. Als deze klasse een waarde bevat, krijgen we de waarde, anders krijgen we niets.
De belangrijkste voordelen van deze klasse zijn dat het kan worden gebruikt om nulcontroles te voorkomen en het kan worden gebruikt om 'NullPointerException' te voorkomen.

Q5. Zal de onderstaande code zonder fouten worden gecompileerd?

Antwoord:
@FunctionalInterface
public interface Function2 (
public V apply(T t, U u);
default void count() (
// increment counter
)
)

Ja, deze code wordt zonder fouten gecompileerd, omdat deze de regel van functionele interface-specificatie volgt van het definiëren van slechts een enkele abstracte methode. De tweede methode die wordt gebruikt, is een standaardmethode die het aantal abstracte methoden niet verhoogt.

Deel 2 - Interviewvragen voor Java 8 Server (geavanceerd)

Laten we nu eens kijken naar de geavanceerde Java 8-interviewvragen en -antwoorden

Q6. Wat is Nashorn op Java?

Antwoord:
Dit is de nieuwe Java-verwerkingsengine voor het Java-platform die wordt geleverd in Java 8. Tot het Java-platform JDK 7 Rhino gebruikte als de verwerkingsengine. Het was een Javascript-verwerkingsmachine. Nashorn zorgt voor betere naleving van de door ECMA genormaliseerde JavaScript-specificatie. Het biedt ook betere runtime-prestaties dan zijn vorige versies.

Q7. Wat is het verschil tussen predicaat en functie?

Antwoord:
Beide zijn functionele interfaces. Een predikaat is een functie met één argument die true of false retourneert. Deze uitdrukking kan worden gebruikt als een toewijzingsdoel voor lambda-expressie of elke methode-referentie.
Functie is ook een functie met één argument, maar het verschil is dat het een object retourneert. Hier vertegenwoordigt T de invoer voor de functie en vertegenwoordigt R het type resultaat. Beide kunnen worden gebruikt als een toewijzingsdoel voor lambda-expressies of methodeverwijzingen.

Laten we doorgaan naar de volgende Java 8-interviewvragen.

Q8. Verklaar het verschil tussen tussen- en terminalactiviteiten.

Antwoord:
Streambewerkingen worden gebruikt om streams te verwerken en te combineren. Al deze bewerkingen zijn intermediair of terminal. Tussentijdse bewerkingen retourneren de stream zelf en staan ​​verdere bewerkingen toe als ze moeten worden uitgevoerd. Deze bewerkingen worden niet tegelijkertijd uitgevoerd. Deze bewerkingen kunnen alleen worden uitgevoerd om gegevens te verwerken wanneer er een terminalbewerking is. Om een ​​paar bewerkingen te noemen, zijn dit filter, map en flat map.
Terminalbewerkingen beëindigen de pijplijn en starten stroomverwerking. Deze stroom wordt door alle tussenliggende bewerkingen geleid tijdens terminalbedrijf. Deze bewerkingen omvatten voor elke, verminderen, verzamelen, som, etc.

Q9. Wat is stream pipelining in Java 8?

Antwoord:
Dit zijn geavanceerde Java 8-interviewvragen die in een interview worden gesteld. Het is het concept van kettingoperaties samen. Dit proces wordt uitgevoerd door bewerkingen te splitsen die kunnen werken met streams met twee categorieën tussenliggende en terminalbewerkingen. Elke tussenliggende bewerking retourneert een exemplaar van een stream wanneer deze wordt uitgevoerd. Er moet ook een terminalbewerking zijn die een definitieve waarde retourneert en de pijplijn beëindigt.

Q10. Wat is StringJoiner?

Antwoord:
StringJoiner is een util-methode die wordt gebruikt om verschillende strings te construeren met de gewenste scheidingstekens. Het kan ook helpen bij het maken van reeksen van verschillende karakters gescheiden door scheidingstekens. Dit werd geïntroduceerd in Java 8. De verschillende constructors zijn Public StringJoiner (CharSequence delimiter) en Public StringJoiner (CharSequence delimiter, CharSequence prefix, CharSequence achtervoegsel). Hieronder ziet u een voorbeeld van StringJoiner:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Aanbevolen artikel

Dit is een gids voor de lijst met Java 8-interviewvragen en -antwoorden, zodat de kandidaat deze Java 8-interviewvragen gemakkelijk kan beantwoorden. Hier in dit bericht hebben we de beste Java 8-interviewvragen bestudeerd die vaak in interviews worden gesteld. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Vragen tijdens het interview met Java Multi-threading
  2. Vragen tijdens solliciteren bij Java EE
  3. Oops: sollicitatievragen voor Java
  4. Vragen tijdens solliciteren bij Java Spring
  5. Wat is nieuw in Java 8?