JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 167. Dinge, die Sie vor einem Java-Interv...

Kaffeepause Nr. 167. Dinge, die Sie vor einem Java-Interview besprechen sollten. Was ist der Unterschied zwischen Enum und Iterator in Java?

Veröffentlicht in der Gruppe Random-DE

Dinge, die Sie vor einem Java-Interview besprechen sollten

Quelle: Medium In diesem Artikel finden Sie 17 Tipps eines erfahrenen Entwicklers, die Ihnen bei einem Java-Interview helfen werden. Kaffeepause Nr. 167.  Dinge, die Sie vor einem Java-Interview besprechen sollten.  Was ist der Unterschied zwischen Enum und Iterator in Java?  - 1Ich arbeite seit über 20 Jahren in der IT-Branche und habe die meiste Zeit mit Java gearbeitet. Darüber hinaus habe ich umfangreiche Erfahrungen bei der Befragung von Java-Entwicklern gesammelt. Obwohl sich die Java-Sprache ständig weiterentwickelt, bleiben die Kernkonzepte weitgehend gleich. Hier sind einige Tipps, die ich angehenden Entwicklern geben möchte, bevor sie zu einem Vorstellungsgespräch gehen. Wenn Sie sie wiederholen, werden Sie vor schwerwiegenden Fehlern bewahrt.
  1. Die Object- Klasse steht an der Wurzel der Java-Klassenhierarchie. Alle Java-Klassen gehen auf Object zurück . Auch wenn eine Klasse keine Klasse explizit erweitert, erweitert sie Object . Es steht einer Klasse jedoch frei, Object explizit zu erweitern.

  2. In Java können Sie nur eine Klasse erweitern (Mehrfachvererbung ist aufgrund von Mehrdeutigkeit nicht zulässig). Eine Klasse kann jedoch beliebig viele Schnittstellen gleichzeitig implementieren.

  3. Eine Schnittstelle erweitert eine andere Schnittstelle (im Gegensatz zu einer Implementierung).

  4. In Java gibt es vier Zugriffsmodifikatoren: public (für alle verfügbar), protected (nur für Unterklassen verfügbar), private (nur innerhalb einer einzelnen Klasse verfügbar), default (verfügbar innerhalb eines einzelnen Pakets). Es ist zu beachten, dass Unterklassen derselben Klasse in unterschiedlichen Paketen enthalten sein können. Die übergeordnete Klasse und die Unterklassen müssen nicht Teil desselben Pakets sein.

  5. Die Klassenzeichenfolge ist unveränderlich. Unveränderlichkeit bedeutet, dass die String- Klasse selbst keine Methoden zum Ersetzen des Werts in einer String- Referenz bereitstellt . Wenn Sie den Wert einer Zeichenfolgenreferenz ersetzen möchten, müssen Sie den Wert explizit mit dem = -Operator zuweisen . Vergleichen Sie dies mit den Klassen StringBuffer oder StringBuilder , die über Methoden wie append verfügen, sodass Sie dort nicht den Operator = verwenden müssen .

  6. ConcurrentHashMap ist effizienter als Hashtable . ConcurrentHashMap arbeitet mit Segmenten der zugrunde liegenden Datenstruktur, wobei ein Schreibvorgang nur ein bestimmtes Segment sperrt (unabhängig davon, zu welchem ​​Segment der Schlüssel gehört). In Hashtable wird jedoch die gesamte Datenstruktur gesperrt.

  7. ConcurrentHashMap ist langsamer als HashMap , da HashMap keine Thread-Sicherheit implementiert. HashMap kann eine ConcurrentModificationException auslösen , wenn ein Thread eine HashMap durchläuft und ein anderer Thread versucht, dieselbe HashMap zu ändern . ConcurrentHashMap löst hier keine Ausnahme aus.

  8. Wie implementiert man die Gleichheit zweier Objekte derselben Klasse, die Sie definiert haben? Antwort: Dies kann durch Überschreiben der Methode hashcode() erfolgen .

  9. Was ist das Standardergebnis der toString()- Methode? Antwort: Es ist die Verkettung des Klassennamens, des @ -Zeichens und des Hashcode() -Werts .

  10. Wie implementiert man Polymorphismus in Java? Eine Möglichkeit, dies zu erreichen, besteht darin, die Methode zu überladen. Eine andere Möglichkeit besteht darin, die Methode zu überschreiben.

  11. Wie ruft man einen Superklassenkonstruktor aus einer untergeordneten Klasse auf? Antwort: Dies kann mit dem Schlüsselwort super() erfolgen . Die super()- Methode ohne Argumente wird immer aufgerufen, auch wenn sie nicht explizit angegeben wird. Die super()- Methode mit einem Argument muss explizit angegeben werden. Ein Aufruf von super() (mit oder ohne Argument) muss immer die erste Zeile im Konstruktor der untergeordneten Klasse sein, wenn er aufgerufen werden muss.

  12. Was sind aktivierte und nicht aktivierte Ausnahmen? Antwort: Geprüfte Ausnahmen sind solche, die in der Methode deklariert oder abgefangen werden müssen, in der sie voraussichtlich ausgelöst werden. Bei einer ungeprüften Ausnahme gilt diese Einschränkung nicht. java.io.IOException ist ein Beispiel für eine geprüfte Ausnahme. Ungeprüfte Ausnahmen stammen von der RunTimeException- Klasse .

  13. Die Stammklasse der Ausnahmehierarchie ist Throwable (was wiederum implizit Object erweitert ). Ausnahme und Fehler kommen von Throwable .

  14. Seit Java 8 können Methoden eine Implementierung in einer Schnittstelle haben. Standardmethoden und statische Methoden können Implementierungen haben.

  15. Eine Klasse, die als abstrakt gilt, kann nicht instanziiert werden. Jede Klasse, die keinen Hauptteil für eine der Methoden bereitstellt, muss als abstrakt deklariert werden. Ein Entwickler kann eine Klasse auch dann als abstrakt deklarieren, wenn alle Methoden einen Rumpf haben – dies ist jedoch nicht sehr empfehlenswert, da die Klasse in diesem Fall nicht instanziiert werden kann.

  16. Der Abschlusskurs kann nicht verlängert werden . Einer endgültigen Variablen kann kein anderer Wert zugewiesen werden. Eine letzte Methode kann nicht überschrieben werden.

  17. Welche Schlüsselwörter sind in einem Try-Catch-Finally- Konstrukt erforderlich ? Dies kann try-catch , try-finally oder alle drei sein. In diesem Fall ist „catch“ kein erforderliches Schlüsselwort.

Was ist der Unterschied zwischen Enum und Iterator in Java?

Quelle: Rrtutors In diesem Beitrag werden die Unterschiede zwischen Aufzählung und Iteration in Java erläutert. Das Java.util- Paket bietet zwei Schnittstellen zum Durchlaufen der Elemente eines Collection- Objekts : Enumeration und Iterator . Auch wenn beide ein Collection- Objekt durchlaufen , gibt es einige Unterschiede zwischen ihnen.

Unterschiede zwischen Enum und Iterator

  • Zeitpunkt, zu dem JDK hinzugefügt wird: Sie werden zu unterschiedlichen Zeiten eingeführt. Enum wurde in JDK 1.0 eingeführt, während Iterator in JDK 1.2 eingeführt wurde.

  • Elemente entfernen: Dies ist der Hauptunterschied zwischen den beiden. In der Iterator- Schnittstelle können wir ein Element entfernen, wenn wir über ein Collection- Objekt iterieren , während wir es nicht ändern können, wenn wir über ein Collection- Objekt mit Enumeration iterieren . Dies liegt daran, dass die Iterator- Schnittstelle über eine Methode „remove()“ verfügt, die Enumeration- Schnittstelle jedoch nicht.

  • Operationstyp: Der Iterator hat den Operationstyp „Fail-Fast“ und die Aufzählung hat den Operationstyp „Fail-Safe“. Infolgedessen löst Iterator eine ConcurrentModificationException aus , wenn die Sammlung während der Iteration geändert wird, es sei denn, es wird seine eigene Methode „remove()“ verwendet , während Enumeration keine Ausnahme auslöst, wenn die Sammlung während der Iteration geändert wird.

Aufzählungs- und Iteratorbeispiele in Java

Aufzählungsbeispiel

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Enumeration;

import java.util.List;

import java.util.Vector;

public class Enumeration_Example {

      public static void main(String[] args) {

                  List laptoplist = new ArrayList(Arrays.asList( new String[] {"Samsung", "Lenovo", "Apple", "HP"}));

            Vector vectali = new Vector(laptoplist);

            delete(vectali, "Samsung");

        }

        private static void delete(Vector vectali, String laptop) {

            Enumeration lapi = vectali.elements();

            while (lapi.hasMoreElements()) {

              String s = (String) lapi.nextElement();

              if (s.equals(laptop)) {

                  vectali.remove(laptop);

              }

            }

            System.out.println("The Laptop brands includes:");

            lapi = vectali.elements();

            while (lapi.hasMoreElements()) {

              System.out.println(lapi.nextElement());

            }

      }

}
Abschluss:
Zu den Laptop-Marken gehören: Lenovo Apple HP

Iterator-Beispiel:

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

import java.util.Vector;

public class Iterator_example {

      public static void main(String[] args) {

                  List laptoplist = new ArrayList(Arrays.asList( new String[] {"Samsung", "Lenovo", "HP", "Apple"}));

            Vector vectali = new Vector(laptoplist);

            delete(vectali, "HP");

        }

        private static void delete(Vector vectali, String name) {

            Iterator a = vectali.iterator();

            while (a.hasNext()) {

              String s = (String) a.next();

              if (s.equals(name)) {

                  a.remove();

              }

            }

            // Display the names

            System.out.println("The laptop brand includes:");

            a = vectali.iterator();

            while (a.hasNext()) {

              System.out.println(a.next());

            }

      }

}
Abschluss:
Zur Laptop-Marke gehören: Samsung Lenovo Apple
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION