JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 151. Implementierung einer Warteschlange ...

Kaffeepause Nr. 151. Implementierung einer Warteschlange in Java. 10 unverzichtbare Fragen für jedes Vorstellungsgespräch für eine Stelle als Java-Backend-Entwickler

Veröffentlicht in der Gruppe Random-DE

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. Kaffeepause Nr. 151.  Implementierung einer Warteschlange in Java.  10 unverzichtbare Fragen für jedes Vorstellungsgespräch für eine Stelle als Java-Backend-Entwickler – 1Vorstellungsgesprä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. Kaffeepause Nr. 151.  Implementierung einer Warteschlange in Java.  10 unverzichtbare Fragen für jedes Vorstellungsgespräch für eine Stelle als Java-Backend-Entwickler – 2

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.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION