10 unverzichtbare Fragen für jedes Vorstellungsgespräch für eine Stelle als Java-Backend-Entwickler
Quelle: Medium Der Autor des Artikels teilt seine persönlichen Erfahrungen mit dem Bestehen mehrerer Vorstellungsgespräche für die Position eines Java-Backend-Entwicklers. Vorstellungsgespräche sind oft schwierig. Daher wäre es eine gute Idee, die Fragen vor dem Vorstellungsgespräch zu kennen. Da ich in den letzten Monaten eine Reihe von Interviews geführt habe, kann ich Ihnen nun einige der Fragen mitteilen, die mir am häufigsten begegnet sind. Ich habe mich auf eine Stelle als Backend-Java-Entwickler mit 1-3 Jahren Erfahrung beworben.1. Java und seine Funktionen
Der Interviewer fragt normalerweise nach der neuesten Java-Version, die Sie verwenden, und ihren Funktionen. Ich habe hauptsächlich Java 8 verwendet und mir wurden Fragen zu API-Streams, Lambda-Ausdrücken, funktionalen Schnittstellen usw. gestellt. Der Interviewer fragte typischerweise nach diesen Funktionen und darauf basierenden Anwendungen.2. Interne Funktionsweise von HashMap
In den meisten Interviews, an denen ich teilnahm, ging es um diese Frage. Nachdem einige erklärt hatten, wie es funktioniert, fragten sie nach der Standardgröße von HashMap, andere fragten mehr nach Java-Sammlungen.3. Fehler und Ausnahmen
Der Unterschied zwischen Fehler und Ausnahme ist eine sehr häufig gestellte Frage in Interviews. Außerdem wurde gefragt, was aktivierte und nicht aktivierte Ausnahmen sind.4. Multithreading
Multithreading ist ein sehr wichtiges Konzept für Interviews. Normalerweise werden Fragen zu Thread, ausführbaren Klassen, den Unterschieden zwischen ihnen und Anwendungsfällen beider gestellt. Ich empfehle Ihnen auch, das Executor-Framework zu studieren.5. Strings und Unveränderlichkeit
Die meisten Interviewer fragten nach der Unveränderlichkeit in der String-Klasse und dann manchmal nach dem String-Builder und dem String-Puffer (wenn Sie sagten, dass es sich um veränderbare alternative Strings handelte). Manchmal fragten sie, wie man eine unveränderliche Klasse erstellt.6. Müllabfuhr
Garbage Collection in Java ist ein sehr wichtiges Thema zur Vorbereitung auf Vorstellungsgespräche. Manchmal werden Fragen zum Lebenszyklus der Garbage Collection und den verschiedenen Methoden der Garbage Collection gestellt.7. Komparator und Vergleichbar in Java
Häufig gestellte Fragen sind, wann Comparator und Comparable in Java verwendet werden sollten und was der Unterschied zwischen ihnen ist.8. Java-Designmuster
Wenn es um Java-Entwurfsmuster geht, beginnen Fragen normalerweise mit den verschiedenen Mustern, die im aktuellen Projekt verwendet werden. Manchmal werden Fragen dazu gestellt, wann die einzelnen Elemente verwendet werden sollen. Ich wurde auch nach der Erstellung einer unveränderlichen Klasse in Java gefragt.9. Final, Final und Finalize
Der Unterschied zwischen den Schlüsselwörtern „final“, „finally“ und „finalize“ ist eine sehr häufig gestellte Frage in Interviews. Als zusätzliche Frage fragen sie nach Optionen für die Verwendung jedes Schlüsselworts.10. Serialisierung und Deserialisierung in Java
Serialisierung und Deserialisierung sind ein sehr wichtiges Thema zur Vorbereitung auf Vorstellungsgespräche. Wird normalerweise nach Anwendungsfällen gefragt, manchmal nach Ruhezustand und JPA. Wenn Sie bald vor einem Vorstellungsgespräch für eine Stelle als Java Server Side Developer stehen, hilft Ihnen die Vorbereitung der hier genannten Fragen hoffentlich weiter.Implementierung einer Warteschlange in Java
Quelle: Faun.pub Dank dieser Veröffentlichung erfahren Sie, wie Sie eine Warteschlange in Java implementieren.Was ist eine Warteschlange?
Eine Queue ist eine lineare Datenstruktur in Form einer Abfolge von Zugriffen auf Elemente nach dem „First In, First Out“-Prinzip. Das bedeutet, dass das zuerst eingefügte Element zuerst entfernt wird. Das heißt, Elemente werden in der Reihenfolge entfernt, in der sie eingefügt wurden. Die Warteschlange besteht aus zwei Teilen: Front (vorne, wo Elemente entfernt werden) und Back (hinten, wo Elemente eingefügt werden). Allgemeine Warteschlangenoperationen: Die folgenden Operationen werden häufig in einer Warteschlange verwendet:- Enqueue – Fügt ein Element vom Ende der Warteschlange hinzu.
- Aus der Warteschlange entfernen – Entfernt ein Element aus dem Kopf der Warteschlange.
- Front/Peek – gibt den Wert des Elements vor der Warteschlange zurück, ohne das Element aus der Warteschlange auszuschließen (zu entfernen).
- IsEmpty – prüft, ob die Warteschlange leer ist.
- IsFull – prüft, ob die Warteschlange voll ist.
- Anzeigen – Druckt alle Elemente in der Warteschlange.
Code-Implementierung:
public class Example {
public static void main(String[] args) {
Queue myQueue = new Queue();
myQueue.enQueue(3);
myQueue.enQueue(2);
myQueue.enQueue(1);
myQueue.display();
myQueue.deQueue();
myQueue.peak();
}
}
class Queue {
int queueLength = 3;
int items[] = new int[queueLength];
int front = -1;
int back = -1;
boolean isFull(){
if(back == queueLength - 1){
return true;
} else {
return false;
}
}
boolean isEmpty(){
if(front == -1 && back == -1){
return true;
} else {
return false;
}
}
void enQueue(int itemValue) {
if(isFull()){
System.out.println("Queue is full");
} else if(front == -1 && back == -1){
front = back = 0;
items[back] = itemValue;
} else{
back++;
items[back] = itemValue;
}
}
void deQueue(){
if(isEmpty()){
System.out.println("Queue is empty. Nothing to dequeue");
} else if (front == back){
front = back = -1;
} else {
front++;
}
}
void display(){
int i;
if(isEmpty()){
System.out.println("Queue is empty");
} else {
for(i = front; i <= back; i++){
System.out.println(items[i]);
}
}
}
void peak(){
System.out.println("Front value is: " + items[front]);
}
}
Erläuterung:
-
Zuerst haben wir unsere Variablen und ihre Parameter erstellt. Wir verwenden 3 als maximale Anzahl von Elementen, die im Array in die Warteschlange gestellt werden können. Wir setzen den Anfangsindex der Vorderseite (Front) und der Rückseite (Back) auf -1.
-
Als nächstes definieren wir die Funktionalität von isEmpty und isFull .
-
Die Methode isEmpty() ist recht einfach. Für die Methode isFull() beträgt unsere maximal zulässige Anzahl von Elementen in einem Array 3, aber drei Elemente im Array werden nicht mit Index 3, sondern mit 2 bezeichnet, da der erste Index 0 ist. Also Die maximale Länge beträgt minus 1 und ergibt Index 2, also die dritte Zelle im Array. Wenn alle Zellen mit einem Wert bis zur dritten Zelle in der Warteschlange stehen, ist das Array voll.
-
enQueue – wenn das Array voll ist, erhalten wir eine Meldung, dass es voll ist. Wenn der vordere und hintere Teil -1 sind, wird das Element der ersten Zelle am Index 0 zugewiesen – andernfalls wird der Wert eingefügt und die hintere Position erhöht.
-
deQueue – wenn das Array leer ist, erhalten wir die entsprechende Nachricht. Wenn der vordere Teil mit dem hinteren Teil übereinstimmt, setzen wir ihren Index wieder auf -1 zurück. Wenn die letzten beiden Bedingungen nicht zutreffen, wird Front erhöht.
-
display – wenn das Array nicht leer ist, iterieren wir und drucken alle Elemente.
-
Peak – Dies gibt einfach den Wert des führenden Elements aus.
GO TO FULL VERSION