Heim Java JavaInterview Fragen Sammlung klassischer Java-Interviewfragen (7)

Sammlung klassischer Java-Interviewfragen (7)

Jul 15, 2020 pm 05:15 PM
java 面试题

Sammlung klassischer Java-Interviewfragen (7)

1. Lassen Sie uns über den Unterschied zwischen ArrayList und Vector sprechen

(weitere empfohlene Interviewfragen: Java-Interviewfragen )

1. Synchronizität: Verwenden Sie synchronisiert, um Thread-Sicherheit zu erreichen, während ArrayList nicht sicher ist. Wenn nur ein Thread auf die Sammlung zugreift, ist es am besten, ArrayList zu verwenden Betrachten Sie Thread-Sicherheit, die Effizienz wird höher sein;

Wenn mehrere Threads auf die Sammlung zugreifen, ist es am besten, Vector zu verwenden, da wir nicht über Thread-sicheren Code nachdenken und ihn schreiben müssen.

2. Datenkapazitätswachstum: Beide haben eine anfängliche Kapazitätsgröße und verwenden linearen kontinuierlichen Speicherplatz. Wenn die Anzahl der gespeicherten Elemente die Kapazität überschreitet, muss der Speicherplatz beider erhöht werden, und Vector wächst um das Doppelte Originalwert, ArrayList erhöht sich um das 0,5-fache des Originalwerts.

2. Warum ist ArrayList threadunsicher?

Das Hinzufügen von Elementen zu ArrayList erfolgt in zwei Schritten, also im ersten Schritt besteht darin, zunächst die hinzuzufügenden Elemente an der Position von Objekt [Größe] zu speichern und im zweiten Schritt den Wert von Größe um 1 zu erhöhen.

Da dieser Prozess in einer Multithread-Umgebung nicht garantiert atomar sein kann, ist ArrayList in einer Multithread-Umgebung threadunsicher.

(Verwandte Tutorial-Empfehlungen: Java-Einführungs-Tutorial)

3. Was sind die Unterschiede zwischen HashMap, LinkedHashMap und TreeMap?

1. HashMap ist die am häufigsten verwendete Karte. Sie speichert Daten entsprechend dem HashCode-Wert des Schlüssels und hat eine sehr schnelle Zugriffsgeschwindigkeit. HashMap lässt nur zu, dass der Schlüssel eines Datensatzes null ist, und lässt nicht zu, dass der Wert mehrerer Datensätze null ist.

HashMap unterstützt keine Thread-Synchronisierung, das heißt, mehrere Threads können HashMap jederzeit gleichzeitig schreiben, was zu Dateninkonsistenzen führen kann. Wenn eine Synchronisierung erforderlich ist, können Sie die Methode Collections.synchronizedMap(HashMap Map) verwenden, um HashMap zu synchronisieren.

2. Hashtable ähnelt HashMap, außer dass die aufgezeichneten Schlüssel oder Werte nicht leer sein dürfen, d. h. es kann immer nur ein Thread in die Hashtable schreiben Dies führt jedoch auch dazu, dass Hashtable beim Schreiben langsamer wird.

3. LinkedHashMap speichert die Einfügereihenfolge von Datensätzen. Beim Durchlaufen von LinkedHashMap mit Iteraor muss der zuerst erhaltene Datensatz zuerst eingefügt werden. Beim Durchlaufen ist es langsamer als HashMap. Verfügt über alle Funktionen von HashMap.

4. TreeMap kann die gespeicherten Datensätze nach Schlüsseln sortieren. Standardmäßig können Sie auch einen Komparator für die Sortierung angeben. Wenn Sie Iteraor zum Durchlaufen einer TreeMap verwenden, werden die erhaltenen Datensätze sortiert. Die Schlüssel und Werte von TreeMap dürfen nicht leer sein.

4. Wie entferne ich doppelte Elemente aus einer Vector-Sammlung?

Verwenden Sie die Methode Vector.contains(), um zu bestimmen, ob das Element enthalten ist. Wenn es nicht enthalten ist, fügen Sie es einer neuen Sammlung hinzu, was für Fälle geeignet ist, in denen die Daten klein sind.

Es gibt auch eine einfache Möglichkeit, den Vektor zu durchlaufen und Set, SortdSet, HashSet usw. einzufügen.

(Empfohlenes Video-Tutorial: Java-Video-Tutorial)

5. Welche Eigenschaften haben die drei Schnittstellen List, Map und Set beim Zugriff auf Elemente?

1. Doppelte Elemente sind in Set nicht zulässig

Elemente speichern:

Die Add-Methode hat einen booleschen Rückgabewert, wenn kein solcher vorhanden ist Element in der Menge: Wenn die Add-Methode das Element erfolgreich hinzufügen kann, gibt sie true zurück. Wenn die Menge ein Element enthält, das gleich einem Element ist, kann die Add-Methode das Element zu diesem Zeitpunkt nicht hinzufügen und gibt das Ergebnis zurück ist falsch.

Elemente abrufen:

Es gibt keine Möglichkeit zu sagen, welche Zahl abgerufen werden soll. Sie können nur alle Elemente über die Iterator-Schnittstelle abrufen und dann jedes Element einzeln durchlaufen.

2. Liste stellt eine sequentielle Sammlung dar

Speichern von Elementen:

Wenn die Methode add(Object) mehrmals aufgerufen wird, werden die jedes Mal hinzugefügten Objekte in der Reihenfolge sortiert Nach dem Prinzip „Wer zuerst kommt, mahlt zuerst“ können Sie auch in die Warteschlange springen, dh die Methode add(int index,Object) aufrufen, um den Speicherort des aktuellen Objekts in der Sammlung anzugeben.

Elemente abrufen:

Methode 1: Die Iterator-Schnittstelle ruft alle Elemente ab und durchläuft jedes Element einzeln.

Methode 2: Rufen Sie get(index i) auf, um klar anzugeben, welcher Index verwendet werden soll. Verwenden Sie diese Schnittstelle, um die Einfügeposition jedes Elements genau zu steuern. Benutzer können über den Index (die Position des Elements in der Liste, ähnlich einem Array-Index), der dem Java-Array ähnelt, auf Elemente in der Liste zugreifen.

3. Map ist eine zweispaltige Sammlung

Elemente speichern:

Verwenden Sie bei jedem Speichern die Methode put(obj key, obj value). Sie müssen einen Schlüssel/Wert speichern. Doppelte Schlüssel können nicht gespeichert werden. Die Duplizierungsregel basiert auch auf dem Gleichheitsvergleich.

Elemente abrufen:

Verwenden Sie die Methode get(Object key), um den entsprechenden Wert basierend auf dem Schlüssel abzurufen. Sie können auch eine Sammlung aller Schlüssel, eine Sammlung aller Werte und eine Sammlung von Map.Entry-Objekten bestehend aus Schlüsseln und Werten abrufen.

Liste enthält Elemente in einer bestimmten Reihenfolge und kann doppelte Elemente enthalten; Set kann keine doppelten Elemente enthalten und ist intern sortiert; der Wert kann mehrwertig sein.

Das obige ist der detaillierte Inhalt vonSammlung klassischer Java-Interviewfragen (7). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

PHP vs. Python: Verständnis der Unterschiede PHP vs. Python: Verständnis der Unterschiede Apr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

See all articles