国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Mit welchen SQL-Optimierungsmethoden sind Sie vertraut?
Heim Java JavaInterview Fragen Letzte Woche hatte ich ein Vorstellungsgespr?ch bei XX Insurance und es war cool! ! !

Letzte Woche hatte ich ein Vorstellungsgespr?ch bei XX Insurance und es war cool! ! !

Aug 25, 2023 pm 03:44 PM
Java -Interviewfragen

Letzte Woche ging ein Freund aus der Gruppe zu einem Interview mit Ping An Insurance. Das Ergebnis war etwas bedauerlich, aber ich hoffe, dass Sie sich nicht entmutigen lassen, die Fragen, auf die Sie gesto?en sind im Interview sind im Grunde alle in Ordnung. Sie haben es gel?st, indem Sie die Fragen auf der Rückseite gelesen haben, also geben Sie bitte Ihr Bestes!

Au?erdem k?nnen Sie bei Fragen gerne zu mir kommen, um gemeinsam zu besprechen und Fortschritte zu erzielen.

Ohne zu weit zu gehen, kommen wir zum Thema. Nachfolgend finden Sie die von diesem Studenten zusammengestellten technischen Interviewfragen und Referenzantworten.

Welche Thread-sicheren Klassen gibt es in Java?

Vector、Hashtable、StringBuffer. Sie alle fügen ihren Methoden Synchronisationssperren hinzu, um Thread-Sicherheit zu erreichen.

Darüber hinaus gibt es alle Sammelklassen im Rahmen des JUC-Pakets

ArrayBlockingQueue?、ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque等,這些也是線程安全的。ArrayBlockingQueue?、ConcurrentHashMap、ConcurrentLinkedQueueConcurrentLinkedDeque等,這些也是線程安全的。

幸好這么回答就算結(jié)束了,面試官也沒再問了,不然JUC下的這幾個我真回答不上來。

Java創(chuàng)建對象有幾種方式?

這個問題相對還是簡單的,能說上個123應(yīng)該都沒問題了。

Java

Java創(chuàng)建對象有幾種方式?

Java中提供了以下四種創(chuàng)建對象的方式:??</p> <ul class="list-paddingleft-2" data-tool="mdnice編輯器" style='margin-top: 8px;margin-bottom: 8px;padding-left: 25px;width: 557.438px;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;'> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">Neu erstellt ein neues Objekt. </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section></li>Die Antwort auf diese Frage war nicht sehr gut. Ich erinnerte mich damals nur an String, equal, hashCode, wait, notify und notifyAll. Habe an nichts anderes gedacht. Der Interviewer nickte immer wieder und erweckte den Eindruck, dass alles in Ordnung sein sollte. <li> <section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section>java.lang.Object</li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section></li> </ul> <h2 data-tool="mdnice編輯器" style='margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 1.3em;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;border-bottom: 2px solid rgb(239, 112, 96);'>Das Folgende ist die Bedeutung der entsprechenden Methode. <span style="margin-right: 3px;padding: 3px 10px 1px;display: inline-block;background: rgb(239, 112, 96);color: rgb(255, 255, 255);border-top-right-radius: 3px;border-top-left-radius: 3px;"></span><span style="display: inline-block;vertical-align: bottom;border-bottom: 36px solid rgb(239, 235, 233);border-right: 20px solid transparent;">Clone-Methode</span> </h2> <blockquote data-tool="mdnice編輯器" style='margin-top: 20px;margin-bottom: 20px;padding: 10px 10px 10px 20px;border-left-color: rgb(239, 112, 96);color: rgb(106, 115, 125);font-size: 0.9em;text-align: left;white-space: normal;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;border-top: none;border-right: none;border-bottom: none;overflow: auto;background: rgb(255, 249, 249);'> Geschützte Methode zum Implementieren einer flachen Kopie des Objekts. Diese Methode kann nur aufgerufen werden, wenn die Cloneable-Schnittstelle implementiert ist. Andernfalls wird eine CloneNotSupportedException-Ausnahme ausgel?st, die auch Cloneable und sein Mitglied implementieren muss Variablen sind ebenfalls Referenztypen. Sie müssen Cloneable implementieren und dann die Klonmethode überschreiben. <p style="padding-top: 8px;padding-bottom: 8px;font-size: 16px;color: black;line-height: 26px;"></p> <p data-tool="mdnice編輯器" style='margin-top: 1px;margin-bottom: 1px;padding-top: 8px;padding-bottom: 8px;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;line-height: 26px;'><strong>finalize-Methode</strong></p> <p data-tool="mdnice編輯器" style='margin-top: 1px;margin-bottom: 1px;padding-top: 8px;padding-bottom: 8px;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;line-height: 26px;'>Diese Methode bezieht sich auf den Garbage Collector. Der letzte Schritt zur Bestimmung, ob ein Objekt recycelt werden kann, besteht darin, festzustellen, ob diese Methode überschrieben wurde. </p> <p data-tool="mdnice編輯器" style='margin-top: 1px;margin-bottom: 1px;padding-top: 8px;padding-bottom: 8px;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;line-height: 26px;'><strong>Gleich-Methode</strong></p> <p data-tool="mdnice編輯器" style='margin-top: 1px;margin-bottom: 1px;padding-top: 8px;padding-bottom: 8px;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;line-height: 26px;'>Diese Methode wird sehr h?ufig verwendet. Im Allgemeinen sind equal und == unterschiedlich, aber in Object sind sie gleich. Unterklassen überschreiben diese Methode im Allgemeinen. </p> <p data-tool="mdnice編輯器" style='margin-top: 1px;margin-bottom: 1px;padding-top: 8px;padding-bottom: 8px;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;line-height: 26px;'><strong>hashCode-Methode</strong></p> <p data-tool="mdnice編輯器" style='margin-top: 1px;margin-bottom: 1px;padding-top: 8px;padding-bottom: 8px;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;line-height: 26px;'>Diese Methode wird für die Hash-Suche verwendet. Das überschreiben der equal-Methode erfordert im Allgemeinen ein Umschreiben der hashCode-Methode. Diese Methode wird in einigen Sammlungen mit Hash-Funktionen verwendet. </p> <p data-tool="mdnice編輯器" style='margin-top: 1px;margin-bottom: 1px;padding-top: 8px;padding-bottom: 8px;text-align: left;white-space: normal;color: black;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;line-height: 26px;'> Muss im Allgemeinen erfüllen <code style='margin-right: 2px;margin-left: 2px;padding: 2px 4px;font-size: 14px;border-radius: 4px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);'>obj1.equals(obj2)==true??梢酝瞥?obj1.hashCode()==obj2.hashCode(), aber gleicher HashCode erfüllt nicht unbedingt gleich. Um die Effizienz zu verbessern, sollten die beiden oben genannten Bedingungen jedoch m?glichst gleichwertig sein.

  • JDK 1.6 und 1.7 geben standardm??ig eine Zufallszahl zurück;
  • JDK 1.8 gibt standardm??ig eine Zufallszahl + drei bestimmte Werte in Bezug auf den aktuellen Thread zurück und verwendet den Zufallszahlenalgorithmus des xorshift-Schemas von Marsaglia, um eine Zufallszahl zu erhalten.

wait-Methode

wird mit synchronisiert verwendet. Die Wartemethode l?sst den aktuellen Thread auf die Sperre des Objekts warten, das hei?t, er hat die Sperre des Objekts Objekt. Die Methode wait() wartet, bis sie die Sperre erh?lt oder unterbrochen wird. wait(long timeout) legt ein Timeout-Intervall fest und kehrt zurück, wenn die Sperre nicht innerhalb der angegebenen Zeit erhalten wird.

Nach dem Aufruf dieser Methode wechselt der aktuelle Thread in den Ruhezustand, bis die folgenden Ereignisse auftreten.

  1. Andere Threads rufen die Notify-Methode des Objekts auf;
  2. Andere Threads rufen Interrupt auf, um den Thread zu unterbrechen;
  3. Das Zeitintervall ist abgelaufen .
  4. Zu diesem Zeitpunkt kann der Thread geplant werden. Wenn er unterbrochen wird, wird eine InterruptedException ausgel?st. Die
Notify-Methode

wird in Verbindung mit der Synchronisierung verwendet. Diese Methode weckt einen Thread in der Wartewarteschlange für das Objekt (Threads in der Synchronisationswarteschlange sind für Threads, die die CPU beanspruchen, und Threads in der Warteschleife). Die Warteschlange bezieht sich auf den wartenden, erwachten Thread.

Die

notifyAll-Methode

wird mit synchronisiert verwendet. Diese Methode weckt alle Threads, die in der Warteschlange auf dieses Objekt warten.

Welche Beziehung besteht zwischen der HashCode-Methode und der Equals-Methode? Als ich diese Frage stellte, hatte ich das Gefühl, dass der Interviewer an meiner Grundlage zweifelte, aber diese Frage kann immer noch beantwortet werden. Wenn a.equals(b) ?true“ zurückgibt, dann ist der hashCode() muss gleich sein.

Wenn a.equals(b) ?false“ zurückgibt, dann ist der hashCode() kann gleich oder unterschiedlich sein.

Die Rolle des Hashcodes

Es ist wirklich eine Reihe von Fragen, eine nach der anderen, die Antworten sind nicht ideal, aber sie sind auch relevant.

Java的集合有兩類,一類是List,還有一類是Set。前者有序可重復(fù),后者無序不重復(fù)。當(dāng)我們在set中插入的時候怎么判斷是否已經(jīng)存在該元素呢,可以通過equals方法。但是如果元素太多,用這樣的方法就會比較滿。

于是有人發(fā)明了哈希算法來提高集合中查找元素的效率。這種方式將集合分成若干個存儲區(qū)域,每個對象可以計算出一個哈希碼,可以將哈希碼分組,每組分別對應(yīng)某個存儲區(qū)域,根據(jù)一個對象的哈希碼就可以確定該對象應(yīng)該存儲的那個區(qū)域。

hashCode方法可以這樣理解:它返回的就是根據(jù)對象的內(nèi)存地址換算出的一個值。這樣一來,當(dāng)集合要添加新的元素時,先調(diào)用這個元素的hashCode

Also hat jemand den Hash-Algorithmus erfunden, um die Effizienz beim Auffinden von Elementen in der Sammlung zu verbessern. Mit dieser Methode kann für jedes Objekt ein Hash-Code berechnet werden. Jede Gruppe entspricht einem bestimmten Speicherbereich. Der Bereich, in dem es gespeichert werden soll. ????hashCode-Methode kann sofort den physischen Ort lokalisieren, an dem sie platziert werden soll. Wenn sich an dieser Position kein Element befindet, kann es ohne Vergleich direkt an dieser Position gespeichert werden. Wenn an dieser Position bereits ein Element vorhanden ist, rufen Sie die Methode equal auf, um es mit dem neuen Element zu vergleichen nicht gespeichert werden, wenn nicht identisch, andere Adressen hashen. Auf diese Weise wird die Anzahl der tats?chlichen Aufrufe der Methode ?equals“ stark reduziert, fast nur ein- oder zweimal. ??

Lassen Sie uns über das automatische Montageprinzip von Spring Boot sprechen

Diese Frage ist auch deshalb so, weil sie in meinem Lebenslauf stehtSpring Boot,所以被問到也是正常的,不過我面試前還是看過一些,回答的還行,面試官說差不多是這個意思。

在Spring Boot中有個很關(guān)鍵的注解@SpringBootApplication?,其中這個注解又可以等同于

-?@SpringBootConfiguration

-?@EnableAutoConfiguration

-?@ComponentScan

WhereMETA-INF/spring. factorys-Dateiinformationen und filtern Sie die Informationen dann mit EnableAutoConfiguration sind die Schlüsseldaten und werden in den IOC-Container geladen, um die automatische Konfigurationsfunktion zu realisieren! @EnableAutoConfiguration是關(guān)鍵(啟用自動配置),內(nèi)部實際上就去加載META-INF/spring.factories文件的信息,然后篩選出以EnableAutoConfiguration為key的數(shù)據(jù),加載到IOC容器中,實現(xiàn)自動配置功能!

數(shù)據(jù)庫事務(wù)的隔離級別有哪些?

這種問題,背背八股文,網(wǎng)上一堆堆。

數(shù)據(jù)庫事務(wù)的隔離級別有4種,由低到高分別為Read uncommitted?、Read committed、Repeatable readSerializable

Was sind die Isolationsstufen von Datenbanktransaktionen?

Merken Sie sich für diese Art von Frage die acht- Essay mit Beinen. Es gibt viele davon online.

??Es gibt 4 Isolationsstufen für Datenbanktransaktionen, von niedrig bis hoch: Uncommitted lesenRepeatable read code >, <code style="margin-right: 2px;margin-left: 2px;padding: 2px 4px;font-size: 14px;border-radius: 4px;background-color: rgba(27, 31, 35, 0.05 ) ;Schriftfamilie: ?Operator Mono“, Consolas, Monaco, Menlo, Monospace;Wortumbruch: break-all;Farbe: rgb(239, 112, 96);“>Serialisierbar. ??
  • Uncommitted read(READ UNCOMMITTED ) : Unter dieser Isolationsstufe k?nnen andere Transaktionen die nicht festgeschriebenen ?nderungen dieser Transaktion sehen, was zu schmutzigen Leseproblemen führt (die nicht festgeschriebenen Teile anderer Transaktionen werden gelesen und dann wird die Transaktion zurückgesetzt READ UNCOMMITTED):這個隔離級別下,其他事務(wù)可以看到本事務(wù)沒有提交的部分修改,因此會造成臟讀的問題(讀取到了其他事務(wù)未提交的部分,而之后該事務(wù)進(jìn)行了回滾);
  • 已提交讀(READ COMMITTED):其他事務(wù)只能讀取到本事務(wù)已經(jīng)提交的部分,這個隔離級別有不可重復(fù)讀的問題,在同一個事務(wù)內(nèi)的兩次讀取,拿到的結(jié)果竟然不一樣,因為另外一個事務(wù)對數(shù)據(jù)進(jìn)行了修改;"
  • 可重復(fù)讀(REPEATABLE READ)??芍貜?fù)讀隔離級別解決了上面不可重復(fù)讀的問題,但是仍然有一個新問題,就是幻讀。當(dāng)你讀取id> 10 的數(shù)據(jù)行時,對涉及到的所有行加上了讀鎖,此時例外一個事務(wù)新插入了一條id=11的數(shù)據(jù),因為是新插入的,所以不會觸發(fā)上面的鎖的排斥,那么進(jìn)行本事務(wù)進(jìn)行下一次的查詢時會發(fā)現(xiàn)有一條id=11的數(shù)據(jù),而上次的查詢操作并沒有獲取到,再進(jìn)行插入就會有主鍵沖突的問題;
  • 可串行化(SERIALIZABLE
  • Zum Lesen eingereicht); REPEATABLE READ). Die Isolationsstufe für wiederholbare Lesevorg?nge l?st das oben genannte Problem mit nicht wiederholbaren Lesevorg?ngen, es gibt jedoch noch ein neues Problem, n?mlich das Phantomlesen. Wenn Sie die Datenzeile mit der ID> 10 lesen, wird allen beteiligten Zeilen eine Lesesperre hinzugefügt. Zu diesem Zeitpunkt fügt eine Transaktion ein Datenelement mit der ID = 11 neu ein Wenn die Sperre exklusiv ist, finden Sie bei der n?chsten Abfrage dieser Transaktion ein Datenelement mit der ID = 11, das beim letzten Abfragevorgang jedoch nicht abgerufen wurde ein Prim?rschlüsselkonfliktproblem; rgba(27, 31, 35, 0.05);font-family: ?Operator Mono“, Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);“>SERIALIZABLE ). Dies ist die h?chste Isolationsstufe, die alle oben genannten Probleme l?sen kann, da sie die serielle Ausführung aller Vorg?nge erzwingt, was zu einem schnellen Abfall der Parallelit?tsleistung führt und daher nicht sehr h?ufig verwendet wird.

    Erz?hlen Sie mir etwas über Ihr Verst?ndnis von Indizes in MySQL.

    ????Diese Frage, okay, sagen Sie mir so viel, wie Sie wissen. Als ich mir die Vorbereitung aller ansah, war ich ziemlich gut vorbereitet. Ich denke, meine Antwort ist ziemlich gut, deshalb habe ich gemeinsam die Vor- und Nachteile des Index beantwortet. ??

    Index ist eine Datenstruktur, die es MySQL erm?glicht, Daten effizient abzurufen. Allgemeiner ausgedrückt ist ein Datenbankindex wie das Inhaltsverzeichnis am Anfang eines Buches, das Datenbankabfragen beschleunigen kann.

    Vorteile

    • Kann die Eindeutigkeit jeder Datenzeile in der Datenbanktabelle sicherstellen
    • Kann die Indizierung von Daten erheblich beschleunigen
    • Beschleunigt die Verbindung zwischen Tabellen, insbesondere bei der Implementierung von Datenreferenzen. Dies ist besonders wichtig sinnvoll im Hinblick auf die Vollst?ndigkeit
    • Bei Verwendung von Gruppierungs- und Sortierklauseln zum Datenabruf kann auch die Zeit für das Gruppieren und Sortieren in Abfragen erheblich verkürzt werden
    • Durch die Verwendung von Indizes werden w?hrend des Zeitabfrageprozesses Optimierungs-Hider verwendet Verbessern Sie die Systemleistung

    Nachteile

    • Das Erstellen und Verwalten von Indizes nimmt Zeit in Anspruch, die mit der Datenmenge zunimmt
    • Indizes müssen zus?tzlich zu den Daten zus?tzlich zum belegten Datenraum auch physischen Raum belegen Durch die Tabelle belegt jeder Index auch eine bestimmte Menge an physischem Speicherplatz. Wenn ein Clustered-Index erstellt werden muss, ist der erforderliche Speicherplatz gr??er
    • Beim Hinzufügen, L?schen oder ?ndern von Daten in der Tabelle muss der Index ebenfalls vorhanden sein dynamisch verwaltet werden, was die Wartungsgeschwindigkeit von Ganzzahlen verringert

    Mit welchen SQL-Optimierungsmethoden sind Sie vertraut?

    Diesen Teil habe ich durch die Lektüre von ?Grundlegende MySQL-Datenbankkenntnisse für Java-Programmierer“ in Brother Tians Knowledge Planet gelernt. Ich habe nur über einen Teil davon gesprochen, weil Bruder Tian viel zusammengestellt hat. Es tut mir leid, mein Bruder hat ein schlechtes Ged?chtnis. Gut.

    1. Verwenden Sie nicht select *

    2. Versuchen Sie, Unterabfragen zu reduzieren und stattdessen zugeh?rige Abfragen (Links-Join, Rechts-Join, Inner-Join) zu verwenden.

    3. Reduzieren Sie die Verwendung von IN oder NOT IN Oder ersetzen Sie die zugeh?rige Abfrageanweisung

    4 Versuchen Sie, Union oder Union All anstelle von oder Query zu verwenden (Union All ist besser, wenn best?tigt wird, dass keine doppelten Daten vorhanden sind oder keine Notwendigkeit besteht, doppelte Daten zu entfernen)

    5 Vermeiden Sie die Verwendung in der where-Klausel. Verwenden Sie den Operator != oder <>, da die Engine sonst die Verwendung des Index aufgibt und einen vollst?ndigen Tabellenscan durchführt.

    6. Vermeiden Sie die Beurteilung des Nullwerts von Feldern in der where-Klausel, da die Engine sonst die Verwendung des Index aufgibt und einen vollst?ndigen Tabellenscan durchführt, z. B.: select id from t where num is null Sie k?nnen den Standardwert festlegen Geben Sie den Wert 0 für num ein, stellen Sie sicher, dass in der num-Spalte der Tabelle kein Nullwert vorhanden ist, und fragen Sie dann wie folgt ab: select id from t where num=0

    Wie wird eine SQL-Abfrage in MySQL ausgeführt?

    NND, ich frage so gerne nach MySQL, diese Frage hat mich wirklich verwirrt und der Interviewer wurde etwas ungeduldig, nachdem er Unsinn geredet hatte. Als ich zurückkam, ging ich zu Tian Ge's Knowledge Planet und sah es mir tats?chlich noch einmal an.

    Zum Beispiel die folgende SQL-Anweisung (vom Interviewer vor Ort gegebenSQL):

    select?字段1,字段2?from?表?where?id=996
    1. Holen Sie sich den Link und verwenden Sie den Connector in MySQL.
    2. Abfrage-Cache, der Schlüssel ist die SQL-Anweisung, der Wert ist das Abfrageergebnis, wenn es gefunden wird, wird es direkt zurückgegeben. Es wird nicht empfohlen, den sekund?ren Cache zu verwenden. Der Abfragecache wurde in der MySQL 8.0-Version gel?scht, was bedeutet, dass diese Funktion nach der MySQL 8.0-Version nicht mehr vorhanden ist.
    3. Analyzer, unterteilt in lexikalische Analyse und Syntaxanalyse. In dieser Phase werden lediglich einige SQL-Analysen und Syntaxüberprüfungen durchgeführt. In diesem Stadium liegen also allgemeine Grammatikfehler vor.
    4. Der Optimierer bestimmt, welcher Index verwendet werden soll, wenn die Tabelle mehrere Indizes enth?lt oder wenn in einer Anweisung mehrere Tabellenzuordnungen (Join) vorhanden sind. Er bestimmt die Verbindungsreihenfolge jeder Tabelle.
    5. Executor, teilen Sie SQL über den Analysator mit, was Sie tun m?chten, wissen Sie über den Optimierer, was zu tun ist, und beginnen Sie mit der Ausführung der Anweisung. Wenn Sie die Anweisung ausführen, müssen Sie auch feststellen, ob Sie über diese Berechtigung verfügen. Wenn Sie keine Berechtigung haben, wird direkt eine Fehlermeldung zurückgegeben, die darauf hinweist, dass Sie keine Berechtigung haben. ?ffnen Sie die Tabelle und verwenden Sie die Schnittstelle Wird von der Engine bereitgestellt, um die erste Zeile der Tabelle gem?? der Engine-Definition der Tabelle abzurufen und festzustellen, ob die ID gleich 1 ist. Wenn ja, kehren Sie direkt zurück. Wenn die Engine-Schnittstelle nicht weiterhin aufgerufen wird, um zur n?chsten Zeile zu wechseln, wiederholen Sie die gleiche Beurteilung, bis die letzte Zeile der Tabelle abgerufen ist, und kehren Sie schlie?lich zurück.

    Ich habe mich gefragt, was 996 bedeutet. Ist Ihr Unternehmen 996? Sag es einfach locker

    Was ist der Unterschied zwischen Heap und Stack in JVM?

    Das ist nicht schlecht, ich kann es beantworten, wenn ich mit ein wenig JVM-Wissen vertraut bin. Die Erkl?rung des von Bruder Tian zusammengestellten JVM-Laufzeitdatenbereichs ist sehr sch?n.

    Der wesentliche Unterschied zwischen den beiden: Der Stapel ist für den Thread privat, w?hrend der Heap vom Thread gemeinsam genutzt wird.

    Stack ist eine Laufzeiteinheit, die Logik darstellt. Ein Stapel entspricht einem Thread, der grundlegende Datentypen und Objektreferenzen im Heap enth?lt.

    Heap ist eine Speichereinheit, die Daten darstellt Kann mehrere Stapel gemeinsam nutzen (einschlie?lich grundlegender Datentypen, Referenzen und Referenzobjekte in Mitgliedern), der Bereich ist nicht kontinuierlich und es treten Fragmente auf.

    1) Verschiedene Funktionen

    Stack-Speicher wird zum Speichern lokaler Variablen und Methodenaufrufe verwendet, w?hrend Heap-Speicher zum Speichern von Objekten in Java verwendet wird. Unabh?ngig davon, ob es sich um Mitgliedsvariablen, lokale Variablen oder Klassenvariablen handelt, werden die Objekte, auf die sie verweisen, im Heapspeicher gespeichert.

    2), unterschiedliche Freigabe

    Stapelspeicher ist privat für Threads. Der Heapspeicher ist allen Threads gemeinsam.

    3) Ausnahmefehler sind unterschiedlich

    Wenn nicht genügend Stapelspeicher oder Heapspeicher vorhanden ist, wird eine Ausnahme ausgel?st.

    Unzureichender Stapelspeicher: java.lang.StackOverFlowError.

    Unzureichender Heap-Speicherplatz: java.lang.OutOfMemoryError.

    4), Speicherplatzgr??e

    Die Speicherplatzgr??e des Stapels ist viel kleiner als die des Heaps.

    Kennen Sie den Klassenlademechanismus?

    Dies sind nur die aufeinanderfolgenden Interviewfragen

    Das Laden der JVM-Klasse ist in 5 Prozesse unterteilt: Laden, überprüfung, Vorbereitung, Analyse, Initialisierung, Verwendung, Deinstallation, wie in der folgenden Abbildung dargestellt:

    Letzte Woche hatte ich ein Vorstellungsgespr?ch bei XX Insurance und es war cool! ! !

    Werfen wir einen Blick auf die spezifischen Aktionen der fünf Prozesse Laden, Verifizieren, Vorbereiten, Parsen und Initialisieren.

    Laden

    Laden besteht haupts?chlich darin, den bin?ren Bytestrom in der .class-Datei (nicht unbedingt .class. Es kann sich um ein aus dem Netzwerk bezogenes ZIP-Paket handeln) in die JVM zu lesen. W?hrend der Ladephase muss die JVM drei Dinge erledigen: 1) Erhalten Sie den bin?ren Bytestrom der Klasse über den vollst?ndig qualifizierten Namen der Klasse. 2) Konvertieren Sie die durch den Bytestrom dargestellte statische Speicherstruktur in die Laufzeitdatenstruktur von der Methodenbereich; 3) Generieren Sie ein java.lang.Class-Objekt dieser Klasse im Speicher als Zugriffseintrag für verschiedene Daten dieser Klasse im Methodenbereich.

    Verbindung

    Verifizierung

    Die Verifizierung ist der erste Schritt in der Verbindungsphase und stellt haupts?chlich sicher, dass der geladene Bytestrom den JVM-Spezifikationen entspricht. In der Verifizierungsphase werden die folgenden vier Phasen der Verifizierungsaktionen abgeschlossen: 1) überprüfung des Dateiformats 2) überprüfung der Metadaten (ob sie der Java-Sprachspezifikation entsprechen) 3) Bytecode-überprüfung (zur Best?tigung, dass die Programmsemantik legal und logisch ist) 4) überprüfung der Symbolreferenz (Stellen Sie sicher, dass der n?chste Analyseschritt normal ausgeführt werden kann)

    Vorbereitung

    Weisen Sie im Methodenbereich haupts?chlich Speicher für statische Variablen zu und legen Sie den Standardanfangswert fest.

    Aufl?sung

    ist der Prozess, durch den die virtuelle Maschine Symbolreferenzen im Konstantenpool durch direkte Referenzen ersetzt.

    Initialisierung

    Die Initialisierungsphase ist der letzte Schritt im Klassenladeprozess. Sie weist Klassenvariablen haupts?chlich aktiv Werte gem?? den Zuweisungsanweisungen im Programm zu. Hinweis: 1) Wenn eine übergeordnete Klasse vorhanden ist und die übergeordnete Klasse initialisiert wird, initialisieren Sie zuerst die übergeordnete Klasse. 2) Führen Sie dann die Initialisierungsanweisung für die Unterklasse aus.

    Welche Bedingungen k?nnen eine vollst?ndige GC ausl?sen?

    Es ist ein bisschen nerv?s, ich dachte, ich würde nach Garbage-Collection-Algorithmen usw. fragen, aber am Ende habe ich hier gefragt. Ich war nicht bereit dafür, also habe ich nur beil?ufig zwei Dinge gesagt, und ich hatte offensichtlich das Gefühl, dass der Interviewer sehr unzufrieden war. Hey, das war's, gehen Sie zurück und bereiten Sie sich gut vor.

    Normalerweise gibt es 5 Szenarien, die eine vollst?ndige GC ausl?sen:

    (1) Aufruf System.gc時,系統(tǒng)建議執(zhí)行Full GC, der jedoch nicht unbedingt ausgeführt wird

    (2) Unzureichender Speicherplatz in der alten Generation

    (3) Methode zum Entfernen von unzureichendem Speicherplatz

    (4) Durchschnittliche Gr??e der alten Generation nach dem Bestehen des Minor GC > Verfügbarer Speicher der alten Generation

    (5) Beim Kopieren aus dem Eden-Bereich, vom Space-Bereich in den To-Space-Bereich ist die Objektgr??e gr??er als der verfügbare Speicher von To Space, dann wird das Objekt auf die alte Generation übertragen, und der verfügbare Speicher der alten Generation ist gr??er kleiner als die Objektgr??e. Das hei?t, wenn die alte Generation keine Objekte der neuen Generation in der alten Generation speichern kann, wird die vollst?ndige GC ausgel?st.

    Die CPU des Online-Systems ist so hoch, was soll ich tun?

    Die Antwort auf diese Frage ist nicht sehr zufriedenstellend. Ich wei?, dass Bruder Tian ein Dokument zusammengestellt hat, aber nachdem ich es auf dem Heimweg noch nicht gesehen habe, stellte ich fest, dass dies auch der Fall sein kann Frage, ich habe sie nicht beantwortet. Der Interviewer kam und sagte: OK, unser Interview endet hier. Ich werde hier der Personalabteilung Bericht erstatten.

    Nach einer Weile kam die sch?ne Personalabteilung mit einem L?cheln zu mir (ich dachte, das Problem sei nicht ernst), aber es stellte sich heraus...

    Sie sind ?YY, der Interviewer hat Feedback zur Interviewsituation gegeben. Wir werden uns das umfassend ansehen. Sie gehen zuerst zurück. Wir rufen Sie an, um Sie sp?ter über die Ergebnisse zu informieren.“

    (⊙o⊙)..., es vergingen mehr als n Tage und es gab keine Neuigkeiten. Es war wirklich cool.

    Der normale Vorgang ist:

    1. top oder by mit P: 1040 // Sortieren Sie zuerst nach Prozesslast, um axLoad(pid) zu finden

    2. top -Hp Prozess-PID: 1073 // Finden Sie die relevante Last Thread-PID

    3. printf ?0x%xn“ Thread-PID: 0x431 // Konvertieren Sie die Thread-PID in Hexadezimalzahl, um sie auf die sp?tere Suche im Jstack-Protokoll vorzubereiten

    4. jstack-Prozess-PID |. vim +/hex thread PID - // Zum Beispiel: jstack 1040|vim +/0x431 -

    Zusammenfassung

    Der gesamte Interviewprozess war relativ einfach und der Interviewer war auch freundlich Es ist ziemlich gut. Da ich seit zwei Jahren arbeite, habe ich einige der Fragen noch nie gesehen. Die Fragen des Interviewers scheinen jedoch vorbereitet zu sein. , und es muss nicht unbedingt pers?nlich durchgeführt werden.

Das obige ist der detaillierte Inhalt vonLetzte Woche hatte ich ein Vorstellungsgespr?ch bei XX Insurance und es war cool! ! !. 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.

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)

Hei?e Themen

PHP-Tutorial
1502
276
Interviewer: Allgemeine Anmerkungen und Ausführungssequenz von Spring Aop Interviewer: Allgemeine Anmerkungen und Ausführungssequenz von Spring Aop Aug 15, 2023 pm 04:32 PM

Sie müssen Spring kennen, also lassen Sie uns über die Reihenfolge aller Benachrichtigungen von Aop sprechen. Wie wirkt sich Spring Boot oder Spring Boot 2 auf die Ausführungsreihenfolge von Aop aus? Erz?hlen Sie uns von den Fallstricken, auf die Sie bei AOP gesto?en sind?

Interview mit einer bestimmten Gruppe: Wie sollten Sie das Problem beheben, wenn Sie online auf OOM sto?en? Wie kann man es l?sen? Welche Optionen? Interview mit einer bestimmten Gruppe: Wie sollten Sie das Problem beheben, wenn Sie online auf OOM sto?en? Wie kann man es l?sen? Welche Optionen? Aug 23, 2023 pm 02:34 PM

OOM bedeutet, dass im Programm eine Sicherheitslücke vorliegt, die durch den Code oder die JVM-Parameterkonfiguration verursacht werden kann. In diesem Artikel erfahren die Leser, wie sie Fehler beheben k?nnen, wenn ein Java-Prozess OOM ausl?st.

Die schriftlichen Testfragen von Ele.me scheinen einfach zu sein, aber sie verblüffen viele Leute Die schriftlichen Testfragen von Ele.me scheinen einfach zu sein, aber sie verblüffen viele Leute Aug 24, 2023 pm 03:29 PM

Untersch?tzen Sie nicht die schriftlichen Prüfungsfragen vieler Unternehmen. Es gibt Fallstricke, in die Sie versehentlich geraten k?nnen. Wenn Sie auf eine solche schriftliche Testfrage zu Zyklen sto?en, empfehle ich Ihnen, ruhig zu denken und Schritt für Schritt vorzugehen.

Letzte Woche hatte ich ein Vorstellungsgespr?ch bei XX Insurance und es war cool! ! ! Letzte Woche hatte ich ein Vorstellungsgespr?ch bei XX Insurance und es war cool! ! ! Aug 25, 2023 pm 03:44 PM

Letzte Woche ging ein Freund aus der Gruppe zu einem Interview mit Ping An Insurance. Das Ergebnis war etwas bedauerlich, aber ich hoffe, Sie lassen sich nicht entmutigen, im Grunde genommen alle Fragen, auf die Sie sto?en Das Interview kann durch Auswendiglernen der Interviewfragen gel?st werden, also arbeiten Sie bitte hart!

5-String-Interviewfragen, weniger als 10 % der Leute k?nnen sie alle richtig beantworten! (mit Antwort) 5-String-Interviewfragen, weniger als 10 % der Leute k?nnen sie alle richtig beantworten! (mit Antwort) Aug 23, 2023 pm 02:49 PM

?In diesem Artikel werden fünf Interviewfragen zur Java-String-Klasse behandelt. Ich habe w?hrend des Interviewprozesses mehrere dieser fünf Fragen pers?nlich erlebt. Dieser Artikel wird Ihnen helfen zu verstehen, warum die Antworten auf diese Fragen so sind.

Anf?nger k?nnen auch mit BAT-Interviewern konkurrieren: CAS Anf?nger k?nnen auch mit BAT-Interviewern konkurrieren: CAS Aug 24, 2023 pm 03:09 PM

Das Extrakapitel der Java-Concurrent-Programming-Reihe, C A S (Compare and swap), ist nach wie vor in einem leicht verst?ndlichen Stil mit Bildern und Texten gehalten und erm?glicht den Lesern eine verrückte Konversation mit dem Interviewer.

Eine Frage, die in fast allen Java-Interviews gestellt wird: Sprechen Sie über den Unterschied zwischen ArrayList und LinkedList Eine Frage, die in fast allen Java-Interviews gestellt wird: Sprechen Sie über den Unterschied zwischen ArrayList und LinkedList Jul 26, 2023 pm 03:11 PM

Die Datenstruktur von Java steht im Mittelpunkt des Interviews. Jeder, der an einem Java-Interview teilgenommen hat, muss über einige Erfahrung verfügen. Wenn Interviewer solche Fragen stellen, m?chten sie oft überprüfen, ob Sie die zugrunde liegenden Strukturen h?ufig verwendeter Datentypen in Java studiert haben, anstatt einfach auf der Ebene des ?Wissens, wie man sie verwendet“ zu bleiben.

Interviewer: Erz?hlen Sie mir etwas über den Klassenladeprozess (10 Diagramme) Interviewer: Erz?hlen Sie mir etwas über den Klassenladeprozess (10 Diagramme) Aug 23, 2023 pm 03:05 PM

Wenn wir eine Klasse verwenden m?chten, müssen wir die Klasse über ClassLoader in den Speicher laden.

See all articles