Heim Java JavaInterview Fragen Fragen zu Java-Interviews für Fortgeschrittene und Fortgeschrittene (mit Antworten)

Fragen zu Java-Interviews für Fortgeschrittene und Fortgeschrittene (mit Antworten)

Nov 14, 2019 pm 04:51 PM
java dazwischenliegend

Fragen zu Java-Interviews für Fortgeschrittene und Fortgeschrittene (mit Antworten)

1. Wie synchronisiert man Redis mit lokalen Daten?

Das Programm synchronisiert den Betrieb von Redis beim Aktualisieren, Hinzufügen und Löschen von MySQL

Das Programm fragt Redis ab. Wenn es nicht existiert, fragt es MySQL ab und speichert Redis automatisch

2. Wie viele Datenstrukturen hat Redis?

set, list, hash, string, zset

3. Wie wird ein Java-Speicherüberlauf verursacht?

OutOfMemoryError:

(1)PerGern Space Im Programm werden viele Jars oder Klassen verwendet, sodass die virtuelle Maschine nicht genügend Platz zum Laden der Klasse hat.

Lösung: Passen Sie die Parameter XX:PermSize und XX:MaxPermSize an, reduzieren Sie JAR-Pakete und reduzieren Sie das wiederholte Laden von Klassen

(2) Java Heap

Platz für die Erstellung einer virtuellen Java-Maschine Auch mehrere Objekte. Lösung: Passen Sie die Parameter Xms (anfängliche Heap-Größe) und Xmx (maximale Heap-Größe) an und prüfen Sie, ob Endlosschleifen vorhanden sind oder unnötige doppelte Objekte erstellt werden.

(3) Neuer nativer Thread kann nicht erstellt werden

JVM nimmt zu viel Speicherplatz ein und das Erstellen eines Threads in JVM erfordert das Erstellen eines Threads im Betriebssystem. Lösung: Passen Sie die Thread-Größe in der JVM an.

4. String s = „123“, wie viele Objekte werden durch diese Anweisung generiert?

Wenn es keine „123“ im String-Pool gibt, generieren Sie eine und fügen Sie sie in den Konstanten-Pool ein. Wenn „123“ vorhanden ist, generieren Sie 0

5 , neue Funktionen von JDK8, beschrieben mit Beispielen

(1) Lambda-Ausdruck: funktionale Programmierung, Methodenreferenz

(2) Stream-API

(3 ) Standard Methode der Schnittstelle

(4) Verbesserung der Datums- und Uhrzeit-API, neue DateTimeFormatter-Methode

6. Lösung hoher Parallelität und hoher Last

( 1) Machen Sie HTML so statisch wie möglich, verwenden Sie das CMS des Informationseingabe- und -freigabesystems, um automatisch statische Seiten für die Informationseingabe zu generieren, und speichern Sie dynamische Daten, die sich nicht häufig ändern, im Frontend zwischen.

(2) CDN-Beschleunigung, Verteilung von CSS/JS und anderen Ressourcen auf verschiedene Server

(3) Cache-Daten, die sich nicht häufig ändern (Redis, Memcache).

(4) Der Bildserver ist vom Anwendungsserver getrennt.

(5) Cluster

7. Welche Rolle spielen die Produzenten- und Konsumentenmodelle?

(1) Verbessern Sie die Betriebseffizienz des gesamten Systems durch Ausgleich von Produktionskapazität und Verbraucherkaufkraft. (2) Entkopplung

8 Cache

(1) Level-1-Cache: Lokaler HashMap-Cache basierend auf PerpetualCache, der die Scope-Sitzung speichert. Beim Leeren oder Schließen der Sitzung wird der gesamte Cache in der Sitzung gelöscht .

(2) Der Cache der zweiten Ebene verfügt über denselben Mechanismus wie der Cache der ersten Ebene. Standardmäßig werden auch PerpetualCache- und HashMap-Speicher verwendet. Der Unterschied liegt im Speicherbereich Mapper und der Speicherquelle angepasst werden, wenn Sie den Second-Level-Cache aktivieren müssen. Fügen Sie

zur SQL-Zuordnungsdatei hinzu. 9. Beschreiben Sie den detaillierten Prozess eines Dienstes von der Veröffentlichung bis zur Nutzung.

Rufen Sie zuerst die ZK-Konfigurationsinformationen ab Rufen Sie dann die Registrierungs- und Registrierungsmethode auf, um die URL bei zookeeper zu registrieren.

10. Wie kann ein Lastausgleich erreicht werden?

Zufällig, Round-Robin, konsistenter Hash und Master-Slave

11 Wenn Sie möchten, wie implementieren Sie Spring AOP?

Die Implementierung der AOP-Technologie ist hauptsächlich in zwei Kategorien unterteilt: Die eine ist die Verwendung der dynamischen Proxy-Technologie, die die Methode des Abfangens von Nachrichten verwendet, um die Nachrichten zu dekorieren und die Ausführung des ursprünglichen Objektverhaltens zu ersetzen

Die zweite besteht darin, statisches Weben zu verwenden, um eine spezifische Syntax zum Erstellen von „Aspekten“ einzuführen, sodass der Code, der sich auf „Aspekte“ bezieht, in den Compiler eingebunden werden kann

12. Wie um wiederholte Seitenübermittlungen zu verhindern?

Clusterumgebung: Token plus Redis verwenden (Redis ist Single-Threaded, die Verarbeitung muss in die Warteschlange gestellt werden)

Verarbeitungsprozess:

1. Sie müssen es an den Dienst „Anfordern eines Tokens“ senden, das Token in den Redis-Speicher legen und die Gültigkeitsdauer des Tokens beträgt

2. Nach der Übermittlung überprüft der Hintergrund das Token und löscht es gleichzeitig. Einen neuen Token generieren und zurückgeben

13. Was ist Micro Serve?

Teilen Sie das Projekt gemäß verschiedenen Geschäftsregeln in Microservices auf und stellen Sie diese auf verschiedenen Maschinen bereit. Dienste rufen sich gegenseitig an

14. Was ist ein Webdienst?

(1) Ein Webdienst ist eine Anwendung, die der Außenwelt eine API zur Verfügung stellt, die über das Web aufgerufen werden kann.

(2) Daten werden auf Basis des HTTP-Protokolls übertragen Dadurch können verschiedene Anwendungen auf unterschiedlichen Maschinen Daten austauschen oder miteinander integriert werden, ohne auf zusätzliche, spezialisierte Software und Hardware von Drittanbietern zurückgreifen zu müssen.

15. Erzählen Sie mir, warum Sie sich für Struts2 entschieden haben Projekt?

①Action ist eine POJO-Klasse, ist nicht auf die Servlet-API angewiesen und verfügt über eine gute Testbarkeit; ②Leistungsstarker Interceptor vereinfacht die Komplexität der Entwicklung;

③Unterstützt mehrere Leistungsschichten: JSP, Freemarker ④Flexible Überprüfungsmethode; ⑥Deklarative Ausnahmeverwaltung; ⑧Integration mit Spring bis Spring-Plugin; über den Unterschied zwischen Abfangjägern und Filtern?

Sowohl Interceptoren als auch Filter können zur Implementierung übergreifender Aufmerksamkeitsfunktionen verwendet werden. Die Hauptunterschiede sind: ①Interceptoren basieren auf dem JAVA-Reflexionsmechanismus, während Filter auf Funktionsrückrufen basieren.

②Filter Abhängig vom Servlet Container, während der Interceptor nicht vom Servlet-Container abhängig ist

③ Der Interceptor kann nur mit Aktionsanfragen (Methoden in Aktion) arbeiten, während Filter mit fast allen Anfragen arbeiten können (CSS JSP JS)

17. Welche Arten des Transaktionsmanagements unterstützt Spring?

Programmatische Transaktionsverwaltung: Dinge programmgesteuert verwalten, große Flexibilität, schwer zu warten

Deklarative Transaktionsverwaltung: Geschäftscode und Transaktionsverwaltung können getrennt werden, nur Anmerkungen und XML-Konfiguration zur Verwaltung verwenden Dinge

php Chinesische Website, eine große Anzahl kostenloser Java-Einführungs-Tutorials, willkommen zum Online-Lernen!

Das obige ist der detaillierte Inhalt vonFragen zu Java-Interviews für Fortgeschrittene und Fortgeschrittene (mit Antworten). 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Stock Market GPT

Stock Market GPT

KI-gestützte Anlageforschung für intelligentere Entscheidungen

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)

Lösen gemeinsamer Java -NullPointerexception -Probleme mit optional Lösen gemeinsamer Java -NullPointerexception -Probleme mit optional Aug 31, 2025 am 07:11 AM

Optional ist eine von Java 8 eingeführte Containerklasse. Es wird verwendet, um deutlich anzuzeigen, dass ein Wert leer sein kann, wodurch NullPointerexception vermieden wird. 2. Die verschachtelte Nullüberprüfung durch Bereitstellung von MAP, Orelse und anderen Methoden verhindern, dass Methoden die Null zurückgeben und die Rückgabewerte der Sammlung standardisieren. 3. Die Best Practices umfassen nur Rückgabewerte, die Vermeidung der Verwendung von Feldern oder Parametern, die Unterscheidung von Orelse von Orelseget und nicht direkt aufrufen Get (); 4. Optional sollte nicht missbraucht werden. Wenn nicht leere Methoden nicht verpackt werden müssen, sollten im Stream unnötige optionale Operationen vermieden werden. Die korrekte Verwendung von Optional kann die Sicherheit und die Lesbarkeit der Code erheblich verbessern, erfordert jedoch gute Programmiergewohnheiten.

Bearbeiten Sie Lesezeichen in Chrome Bearbeiten Sie Lesezeichen in Chrome Aug 27, 2025 am 12:03 AM

Das Chrome -Lesezeichen -Bearbeitung ist einfach und praktisch. Benutzer können den Lesezeichen -Manager über die Verknüpfungsschlüsselstasten Strg Shift O (Windows) oder CMD Shift O (MAC) eingeben oder über das Browser -Menü eingeben. 1. Beim Bearbeiten eines einzelnen Lesezeichens klicken Sie mit der rechten Maustaste, um "Bearbeiten" auszuwählen, den Titel oder die URL zu ändern und klicken Sie auf "Finish", um sie zu speichern. 2. Bei der Organisation von Lesezeichen in Stapeln können Sie Strg (oder CMD) an Multiple-Choice-Lesezeichen im Lesezeichen-Manager halten. Klicken Sie mit der rechten Maustaste, um mit "Wechsel zu" oder "Kopieren in" den Zielordner zu wählen. 3. Klicken Sie beim Exportieren und Importieren von Lesezeichen auf die Schaltfläche "Lösen", um das "Lesezeichen exportieren" auszuwählen, um sie als HTML -Datei zu speichern, und stellen Sie diese dann über die Funktion "Lesezeichen importieren" bei Bedarf wieder her.

Geben Sie die Taste ein, die nicht auf meiner Tastatur funktioniert Geben Sie die Taste ein, die nicht auf meiner Tastatur funktioniert Aug 30, 2025 am 08:36 AM

Erstens, checkforphysicalisuikedebriSordamageandCleanTheKeyboardOrtestwithaNexternalone; 2.TesttheenterKeyIntifferentAppStodetermineiftheissoftware-spezifisch; 3.

Was ist ein Speicherleck in Java? Was ist ein Speicherleck in Java? Aug 28, 2025 am 05:37 AM

AmemoryleakinjavaoccurswhenunreantableObjectsarenotgarbagebagEcollectedDuetolingReferences, LeadtoexcessivemoryusAndpotentialofMemoryError

Was sind Wrapper -Klassen und warum werden sie in Java verwendet? Was sind Wrapper -Klassen und warum werden sie in Java verwendet? Sep 01, 2025 am 05:58 AM

WrapperclasseSSesSeSusedToconvertPrimitivedatatypesintoObjects, ermöglicht TheiruseCollections, ermöglicht NullValues, bereitgestellt Metility und SupportingAutoboxing/Unboxing.theyalowPrimitivestobeKollectionsSlikears -Listlist, was die Uhrenliste, die, wie

So finden Sie den MAX- oder MIN -Wert in einem Stream in Java So finden Sie den MAX- oder MIN -Wert in einem Stream in Java Aug 27, 2025 am 04:14 AM

Verwenden Sie die Methoden max () und min (), um den Komparator zu kombinieren, um die maximalen und minimalen Werte im Stream zu finden, z. 2. Verwenden Sie für benutzerdefinierte Objekte vergleiche. 3. Da das Ergebnis optional ist, muss die leere Stream -Situation behandelt werden. Sie können iSPresent () verwenden, um zu überprüfen oder orelse (), um Standardwerte bereitzustellen. Es wird empfohlen, IntStream für Basistypen zu verwenden, um das Boxenaufwand zu vermeiden und die Leistung zu verbessern. Am Ende sollten Sie immer richtig gemacht sein.

CVE-2024-20674 | Windows Kerberos Sicherheitsfunktion umgeht die Sicherheitsanfälligkeit CVE-2024-20674 | Windows Kerberos Sicherheitsfunktion umgeht die Sicherheitsanfälligkeit Sep 02, 2025 pm 05:18 PM

0x00 Vorwort Kerberos wurde von MIT als Lösung für diese Cybersicherheitsprobleme erstellt. Ist eine Client/Server -Architektur, die die Sicherheitsüberprüfungsverarbeitung über das Netzwerk bietet. Durch die Überprüfung kann die Identität des Absenders und des Empfängers von Netzwerktransaktionen sichergestellt werden. Der Dienst kann auch die Gültigkeit (Integrität) der übergebenen Daten überprüfen und die Daten während der Übertragung (Vertraulichkeit) verschlüsseln. 0x01 Schwachstellenbeschreibung Ein Angreifer mit Zugriff auf ein Opfernetzwerk kann diese Sicherheitsanfälligkeit ausnutzen, indem er einen Zwischenangriff (MITM) oder andere lokale Netzwerk -Spoofing -Techniken erstellt und dann eine böswillige Kerberos -Nachricht an den Computer des Client -Opfers sendet und vorgibt, ein Kerberos -Authentifizierungsserver zu sein. 0x02cve

So formatieren Sie Zahlen in Java mit Decimalformat So formatieren Sie Zahlen in Java mit Decimalformat Aug 30, 2025 am 03:09 AM

Verwenden Sie Decimalformat, um die digitalen Formate genau zu steuern. 1. Verwenden Sie Musterzeichenfolgen wie "#, ###. ##" für die grundlegende Formatierung, wobei#eine optionale Zahl darstellt, 0 eine Must-Display-Zahl darstellt, ein Tausend-Trennzeichen ist und ein Dezimalpunkt ist. 2. Gemeinsame Modi umfassen "0,00", um zwei Dezimalstellen zu behalten, "0.000.000", um die Ausrichtung der Null zu ergänzen, usw.; 3. Vermeiden Sie wissenschaftliche Notationsmethoden, Sie können SetScientificNotation (False) oder einen Modus mit ausreichenden Ziffern verwenden. 4.. Sie können den Rundungsmodus durch setRoundingMode () wie half_up, Down usw. einstellen.

See all articles