Heim Java JavaInterview Fragen Fragen zum Java-Interview 2019 (Tencent)

Fragen zum Java-Interview 2019 (Tencent)

Dec 03, 2020 pm 04:33 PM
java 腾讯 面试题

Fragen zum Java-Interview 2019 (Tencent)

Das Folgende ist eine Interviewfrage von Tencent aus dem Jahr 2019. Ich teile sie mit Ihnen und hoffe, dass sie für alle hilfreich ist.

(Empfohlenes Video-Tutorial: Java-Lehrvideo)

  1. Wählen Sie ein Projekt aus Ihrem Lebenslauf und sagen Sie uns, auf welche großen Herausforderungen Sie dabei gestoßen sind? Und Ihre Ideen zur Lösung des Problems?
  2. ⼼Ein Code muss mehrere Redis-Befehle ausführen, um die Atomizität ohne Sperren sicherzustellen.
    Lua-Skript verwenden: https://segmentfault.com/a/1190000009811453
  3. Sprechen wir über Datenstrukturen wie Binärbäume und rote Bäume?
    Verstehen Sie diesen Artikel: https://juejin.im/post/5a27c6946fb9a04509096248
  4. Erzählen Sie mir etwas über die Unterschiede und Verwendungsszenarien von B-Tree und B+Tree?
  5. B-Baum:
    B-Baum ist ein Baum, der unter Ausnutzung der Eigenschaften von Plattenblöcken erstellt wird. Jeder Festplattenblock hat einen Knoten und jeder Knoten enthält viele Schlüssel. Durch die Erhöhung der Anzahl der Knotenschlüsselwörter im Baum verfügt der Baum über weniger Ebenen als der ursprüngliche Binärbaum, wodurch die Anzahl und Komplexität der Datensuche verringert wird.
    B-Tree nutzt geschickt das Prinzip des Festplatten-Read-Ahead, um die Größe eines Knotens auf eine Seite festzulegen (jede Seite ist 4 KB), sodass jeder Knoten nur eine E/A benötigt, um den vollständigen Ladevorgang abzuschließen.
    Geben Sie ein.
    B-Tree-Daten können in jedem Knoten gespeichert werden.
  6. B+Baum:
  7. B+Baum ist eine Variante von B+Baum. Daten werden nur in Blattknoten gespeichert. Auf diese Weise speichert jeder Knoten mehr Schlüsselwörter und der Baum hat weniger Ebenen, sodass die Datenabfrage schneller erfolgt. Alle Schlüsselwortzeiger sind in Blattknoten vorhanden, sodass die Anzahl der Suchvorgänge jedes Mal gleich ist Die Abfragegeschwindigkeit ist stabiler.

    Welche Version von MySQL und welche Speicher-Engine verwenden B+tree für den Index?
  8. Sie müssen zunächst die Implementierungsprinzipien von B + Tree und Red Tree verstehen. B+tree verfügt über sequentielle Zugriffszeiger, die rote Bäume nicht haben.

  9. Sprechen Sie über die Unterschiede zwischen gängiger Nachrichten-Middleware?
  10. RabbitMQ ist die erste Wahl für kleine und mittlere Unternehmen: einfache Verwaltungsoberfläche und hohe Parallelität.
  11. Weitere verwandte Empfehlungen für Interviewfragen:
  12. Java-Interviewfragen und -antworten
  13. ⼼Große Unternehmen können sich für RocketMQ entscheiden: Es bietet mehr Parallelität und kann die RocketMQ-Entwicklung anpassen.
  14. ⽽Protokollsammelfunktion, Kafka ist die erste Wahl, speziell für Big Data vorbereitet.
  15. Wie stellt Rabbitmq die Zuverlässigkeit von Nachrichten sicher?
  16. Details „⾯Question Bank/rabbitmq“

  17. Springcloud Service Discovery Prinzip?
  18. a. Senden Sie alle 30 Sekunden einen Heartbeat-Check, um die Miete zu erneuern. Wenn der Kunde die Miete nicht mehrmals verlängern kann, wird sie innerhalb von 90 Sekunden aus dem Server-Registrierungscenter entfernt.
  19. a. Registrierungsinformationen und Aktualisierungen werden auf andere Eureka-Knoten kopiert. Die Replikation erfolgt alle 30 Sekunden, um ihre Dienste zu finden und Fernanrufe zu tätigen.
    b. Der Client kann auch einige Serviceinstanzinformationen zwischenspeichern, sodass der Client die Serviceadresse auch dann noch finden kann, wenn Eureka ausfällt.

    Die verschiedenen Komponenten von Springcloud vorstellen? Was kann außer Eureka noch für das Registrierungscenter von Springcloud verwendet werden?
  20. How springcloud works
  21. Features ActiveMQ RabbitMQ RocketMQ kafka
    Development language java erlang java scala
    Single machine throughput 10,000 level 10,000 level 100,000 level
    Timeliness ms level us level ms level within ms level
    Availability ⾼High (master-slave architecture) ⾼High (Master-Slave-Architektur) ⾾Sehr hoch (verteilte Architektur) ⾾Sehr hoch (verteilte Architektur)
    Ausgereiftes Produkt, das in vielen Unternehmen verwendet wird; verschiedene Protokolle werden gut unterstützt
    Basierend auf Erlang-Entwicklung, also der Parallelität Die Leistungsfähigkeit ist sehr stark, die Leistung ist extrem gut und die Latenz ist sehr gering; die Verwaltungsschnittstelle ist umfangreich
    Die MQ-Funktion ist relativ vollständig und die Skalierbarkeit ist gut
    Nur die Haupt-MQ wird unterstützt. Funktionen wie einige Nachrichtenabfragen, Nachrichtenverfolgung und andere Funktionen werden nicht bereitgestellt. Schließlich ist es für Big Data vorbereitet und wird im Bereich Big Data häufig verwendet.
    springcloud besteht aus den folgenden Kernkomponenten:
    Eureka: Wenn jeder Dienst startet, registriert der Eureka-Client den Dienst beim Eureka-Server, und der Eureka-Client kann die Registrierung auch der Reihe nach vom Eureka-Server abrufen, um zu wissen, wo sich andere Dienste befinden . Welche ⾥
    Ribbon: Wenn eine Anfrage zwischen Diensten initiiert wird, erfolgt der Lastausgleich basierend auf Ribbon und eine Maschine wird aus mehreren Maschinen eines Dienstes ausgewählt
    Feign: Feign-basierter dynamischer Proxy-Mechanismus, basierend auf Anmerkungen und ausgewählten Maschinen, Die Anforderungs-URL ist eine gespleißte Adresse, initiieren Sie eine Anforderung. Hystrix: Die Anforderung wird über den Thread-Pool von Hystrix initiiert. Dadurch wird die Isolierung verschiedener Dienstaufrufe realisiert und das Problem der Dienstlawine vermieden das Front-End, Das mobile Endgerät muss das Back-End-System aufrufen, das einheitlich über das Zuul-Gateway eingegeben wird, und das Zuul-Gateway leitet die Anfrage an den entsprechenden Dienst weiter
    Das Registrierungszentrum kann auch zookeeper verwenden.

    Was sind die aktuellen limitierenden Methoden für Microservices?
    Spring Cloud Gateway: https://windmt.com/2018/05/09/spring-cloud-15-spring-cloud-gateway-ratelimiter/

    Ist die Dienstisolierung weiterhin erforderlich, wenn der Strom begrenzt ist?
    https://www.javazhiyin.com/25964.html
  22. Dubbo verfügt über mehrere Arten des Lastausgleichs? Erfolgt der Lastausgleich auf der Serverseite oder auf der Clientseite?
    Dubbo-Lastausgleich Auf der Clientseite verfügt Dubbo über 4 integrierte Lastausgleichsstrategien:
  23. a. RandomLoadBalance: Zufälliger Lastausgleich. Wählen Sie zufällig eine aus. Dies ist Dubbos Standard-Lastausgleichsstrategie.
  24. b. RoundRobinLoadBalance: Lastausgleich abfragen. Umfrage zur Auswahl.
    c. LeastActiveLoadBalance: Die minimale Anzahl aktiver Anrufe, zufällig mit der gleichen Anzahl aktiver Anrufe. Die aktive Zählung bezieht sich auf die Differenz der Zählungen vor und nach dem Anruf. Sorgen Sie dafür, dass der langsame Anbieter weniger Anfragen erhält, denn je langsamer der Anbieter, desto größer ist der Unterschied in der Anzahl vor und nach dem Aufruf.
    d. ConsistentHashLoadBalance: Konsistenter Hash-Lastausgleich. Anfragen mit denselben Parametern landen immer auf derselben Maschine.
  25. Wie implementiert man die verteilte Redis-Sperre? Welche Themen erfordern Aufmerksamkeit?
  26. Erfahren Sie mehr über diesen Artikel: https://juejin.im/post/5bbb0d8df265da0abd3533a5
  27. Erzählen Sie mir etwas über den Quellcode, den Sie gelesen haben? Welche Designmuster oder Design-Highlights werden verwendet?
  28. Für eine spezifische Analyse müssen Sie vor dem Interview etwas Quellcode lesen, z. B. den Spring-Quellcode.
  29. Wie implementiert man AOP? Wo wird AOP im Projekt verwendet?
  30. Master: https://juejin.im/post/5bf4fc84f265da611b57f906
  31. Welche Rolle spielt der Postprozessor?
  32. Spring-Bean-Postprozessor BeanPostProcessor: https://www.jianshu.com/p/f80b77d65d39
  33. Spring-Bean-Bereich, wann der Anforderungsbereich verwendet werden soll.
  34. Im Detail lesen: https://blog.csdn.net/icarus_wang/article/details/51586776
  35. Sag mir das Ergebnis dieser Frage?

  36.   1 package com.giveu.web;
     2
     3 public class VolatileTest {
     4 public static volatile int race = 0;
     5
     6 public static void increase() {
     7 race++;
     8 }
     9
     10 private static final int THREADS_COUNT = 10;
     11
     12 public static void main(String[] args) {
     13 Thread[] threads = new Thread[THREADS_COUNT];
     14 for (int i = 0; i < THREADS_COUNT; i++) {
     15 threads[i] = new Thread(new Runnable() {
     16 @Override
     17 public void run() {
     18 for (int i = 0; i < 10000; i++) {
     19 increase();
     20 }
     21 }
     22 });
     23 threads[i].start();
     24 }
     25 while (Thread.activeCount() > 1) {
     26 Thread.yield();
     27 }
     28 System.out.println(race);
     29 }
     30
    Nach dem Login kopieren
Das Programm endet nicht und es erfolgt kein Ausdruck.

Verwandte Empfehlungen:

Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonFragen zum Java-Interview 2019 (Tencent). 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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.

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

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

See all articles