JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 58. 20 wichtige Interviewfragen, die ein ...

Kaffeepause Nr. 58. 20 wichtige Interviewfragen, die ein Java-Entwickler kennen sollte. Vorteile der Kenntnis mehrerer Programmiersprachen

Veröffentlicht in der Gruppe Random-DE

20 wichtige Interviewfragen, die ein Java-Entwickler kennen sollte

Quelle: Dev.toKaffeepause Nr. 58.  20 wichtige Interviewfragen, die ein Java-Entwickler kennen sollte.  Vorteile der Kenntnis mehrerer Programmiersprachen – 1

1. Welche zwei Arten von Ausnahmen gibt es in Java? Was ist der Unterschied zwischen ihnen?

Antwort: In Java gibt es zwei Arten von Ausnahmen: aktivierte und nicht aktivierte Ausnahmen.
  1. Ungeprüfte Ausnahmen müssen nicht in einer Methoden- oder Konstruktor-Schlüsselwortanweisung deklariert werden, wenn sie ausgelöst werden können, wenn die Methode oder der Konstruktor ausgeführt wird, und sich über die Methoden- oder Konstruktorgrenze hinaus verbreiten können.
  2. Andererseits müssen geprüfte Ausnahmen in der Methoden- oder Schlüsselwortanweisung des Konstruktors deklariert werden.

2. Was ist JVM? Warum wird Java als „plattformunabhängige Programmiersprache“ bezeichnet?

Antwort: Java Virtual Machine (JVM) ist eine virtuelle Prozessmaschine, die Java-Bytecode ausführen kann. Jede Java-Quelldatei wird in eine Bytecode-Datei kompiliert, die von der JVM ausgeführt wird. Die Java-Sprache wurde entwickelt, um Anwendungsprogramme zu erstellen, die auf jeder Plattform ausgeführt werden können, ohne dass sie für jede einzelne Plattform neu geschrieben oder neu kompiliert werden müssen. Die Java Virtual Machine macht dies möglich, weil sie die spezifische Befehlslänge und andere Merkmale der zugrunde liegenden Hardwareplattform kennt.

3. Was ist der Unterschied zwischen einem Applet und einer Java-Anwendung?

Antwort:
  • Applets werden in einem Java-fähigen Browserfenster ausgeführt.
  • Eine Java-Anwendung ist ein eigenständiges Java-Programm, das außerhalb des Browsers ausgeführt werden kann.
Beide erfordern eine Java Virtual Machine (JVM). Allerdings benötigt eine Java-Anwendung eine Hauptmethode mit einer bestimmten Signatur, um mit der Ausführung zu beginnen. Java-Applets benötigen eine solche Methode nicht, um mit der Ausführung zu beginnen. Außerdem verwenden Java-Applets normalerweise eine restriktive Sicherheitsrichtlinie, während Java-Anwendungen normalerweise eine lockerere Sicherheitsrichtlinie verwenden.

4. Was ist der Unterschied zwischen JDK und JRE?

Antwort:
  • Die Java Runtime Environment (JRE) ist im Grunde eine Java Virtual Machine (JVM), die Ihre Java-Programme ausführt. Es enthält auch Browser-Plugins zum Ausführen des Applets.
  • Das Java Development Kit (JDK) ist ein Software-Entwicklungskit mit vollem Funktionsumfang für die Java-Sprache, einschließlich JRE, Compilern und Tools (wie JavaDoc und Java Debugger), mit dem der Benutzer Java-Anwendungen entwickeln, kompilieren und ausführen kann.

5. Was ist ein Servlet?

Antwort: Ein Servlet ist eine Klasse der Programmiersprache Java, die zur Verarbeitung von Clientanfragen und zur Erstellung dynamischer Webinhalte verwendet wird. Servlets werden hauptsächlich verwendet, um von einem HTML-Formular übermittelte Daten zu verarbeiten oder zu speichern, dynamische Inhalte bereitzustellen und Statusinformationen zu verwalten, die in zustandslosem HTTP nicht vorhanden sind.

6. Was ist eine JSP-Seite?

Antwort: Java Server Page (JSP) ist ein Textdokument, das zwei Arten von Text enthält:
  • statische Daten,
  • JSP-Elemente.
Statische Daten können in jedem Textformat wie HTML oder XML ausgedrückt werden. JSP ist eine Technologie, die statische Inhalte mit dynamisch generierten Inhalten mischt.

7. Was sind Richtlinien? Welche Arten von Anweisungen sind in JSP verfügbar?

Antwort: Direktiven sind Anweisungen, die von der JSP-Engine verarbeitet werden, wenn die Seite in ein Servlet kompiliert wird. Direktiven werden verwendet, um Anweisungen auf Seitenebene festzulegen, Daten aus externen Dateien einzufügen und benutzerdefinierte Tag-Bibliotheken anzugeben. Direktiven werden zwischen <%@ und %> definiert. Die verschiedenen Arten von Anweisungen sind unten aufgeführt:
  • Include-Anweisung: Wird verwendet, um eine Datei einzuschließen und den Inhalt der Datei mit der aktuellen Seite zu kombinieren.
  • Seitenanweisung: Sie wird verwendet, um bestimmte Attribute auf einer JSP-Seite zu definieren, z. B. Fehlerseite und Puffer.
  • Taglib: Wird verwendet, um eine benutzerdefinierte Taglib zu deklarieren, die auf der Seite verwendet wird.

8. Was bewirken die Methoden System.gc() und Runtime.gc()?

Antwort: Diese Methoden können als Hinweis für die JVM verwendet werden, um die Garbage Collection auszulösen. Typischerweise führt die Java Virtual Machine (JVM) die Speicherbereinigung regelmäßig durch oder wenn der freie Speicher knapp wird.

9. Welche Unterschiede gibt es zwischen HashMap und Hashtable?

Antwort: Es gibt mehrere Unterschiede zwischen HashMap und Hashtable in Java:
  1. Hashtable ist synchronisiert, HashMap jedoch nicht. Dies macht HashMap besser für Anwendungen ohne Thread, da nicht synchronisierte Objekte im Allgemeinen eine bessere Leistung erbringen als synchronisierte.
  2. Hashtable erlaubt keine Nullschlüssel oder -werte. Mit HashMap können Sie einen Nullschlüssel und eine beliebige Anzahl von Nullwerten verwenden.
  3. Eine der Unterklassen von HashMap ist LinkedHashMap. Wenn Sie also eine vorhersehbare Iterationsreihenfolge (Standardeinfügereihenfolge) wünschen, können Sie HashMap problemlos gegen LinkedHashMap austauschen. Dies wäre nicht so einfach, wenn Sie Hashtable verwenden würden.

10. Was ist JDBC?

Antwort: JDBC ist eine Abstraktionsschicht, die es Benutzern ermöglicht, zwischen Datenbanken zu wählen. Mit JDBC können Entwickler Datenbankanwendungen in Java schreiben, ohne sich um die Details einer bestimmten Datenbank kümmern zu müssen.

11. Was bedeutet das Schlüsselwort „static“? Können Sie eine private oder statische Methode in Java überschreiben?

Antwort: Das Schlüsselwort static bedeutet, dass auf ein Variablenmitglied oder eine Methode zugegriffen werden kann, ohne dass eine Instanz der Klasse erforderlich ist, zu der es gehört . Der Benutzer kann statische Methoden in Java nicht überschreiben, da das Überschreiben von Methoden auf einer dynamischen Bindung zur Laufzeit basiert und statische Methoden zur Kompilierungszeit dauerhaft gebunden sind. Eine statische Methode ist keiner Instanz der Klasse zugeordnet, daher ist dieses Konzept nicht anwendbar.

12. Welche Bedeutung hat ein „finally“-Block bei der Behandlung von Ausnahmen?

Antwort: Ein „finally“ -Block wird immer ausgeführt, unabhängig davon, ob eine Ausnahme ausgelöst wird. Auch wenn keine Catch- Anweisung vorhanden ist und eine Ausnahme auftritt. Eine letzte Sache, die erwähnt werden muss, ist, dass der „finally “-Block dazu verwendet wird, Ressourcen wie E/A-Puffer, Datenbankverbindungen usw. freizugeben.

13. Was ist der Unterschied zwischen Ausnahme und Fehler in Java?

Antwort: Ein Fehler ist ein kritischer Zustand, der vom Programmcode nicht behandelt werden kann. Eine Ausnahme ist eine Ausnahmesituation, die durch Programmcode behandelt werden kann.

14. Wann kommt ein Objekt für die Garbage Collection in Java infrage?

Antwort: Ein Java-Objekt unterliegt der Garbage Collection, wenn es für das Programm, das es gerade verwendet, nicht mehr verfügbar ist.

15. Was ist ein Iterator?

Antwort: Die Iterator- Schnittstelle bietet eine Reihe von Methoden, die jede Sammlung durchlaufen können . Jede Java-Sammlung enthält eine Iterator- Methode, die eine Iterator- Instanz zurückgibt . Iteratoren können während der Iteration Elemente aus der zugrunde liegenden Sammlung entfernen.

16. Was ist Referenzübergabe und Wertübergabe?

Antwort:
  • Wenn ein Objekt als Wert übergeben wird , bedeutet dies, dass eine Kopie des Objekts übergeben wird. Selbst wenn Änderungen an diesem Objekt vorgenommen werden, hat dies keinen Einfluss auf den ursprünglichen Wert.
  • Wenn ein Objekt per Referenz übergeben wird , bedeutet dies, dass das Objekt nicht tatsächlich übergeben wird, sondern dass eine Referenz auf das Objekt übergeben wird. Auf diese Weise werden auch alle durch die externe Methode vorgenommenen Änderungen an allen Stellen widergespiegelt.

17. Was ist ein Java-Applet?

Antwort: Ein Java-Applet ist ein Programm, das in eine HTML-Seite eingebunden und in einem Java-fähigen Client-Browser ausgeführt werden kann. Mit Applets werden dynamische und interaktive Webanwendungen erstellt.

18. Wie funktioniert HashMap in Java?

Antwort: HashMap in Java speichert Schlüssel-Wert-Paare. HashMap erfordert eine Hash-Funktion, verwendet HashCode- und Equals -Methoden , um Elemente in der Sammlung festzulegen und aus dieser abzurufen. Wenn die Put- Methode aufgerufen wird , berechnet HashMap den Hash-Wert des Schlüssels und speichert das Paar am entsprechenden Index innerhalb der Sammlung. Wenn der Schlüssel vorhanden ist, wird sein Wert mit dem neuen Wert aktualisiert. Einige wichtige Merkmale von HashMap sind seine Kapazität, sein Auslastungsfaktor und seine Schwellenwertgrößenvariation.

19. Was sind die Hauptschnittstellen des Java Collections Framework?

Antwort: Das Java Collections Framework ist ein entworfener Satz von Schnittstellen und Klassen, die Operationen an Objektsammlungen unterstützen. Die wichtigsten Schnittstellen im Java Collections Framework sind:
  • Eine Sammlung stellt eine Gruppe von Objekten dar, die als Elemente bezeichnet werden.
  • Ein Set ist eine Sammlung, die keine doppelten Elemente enthalten darf.
  • Eine Liste ist eine geordnete Sammlung, die sich wiederholende Elemente enthalten kann.
  • Eine Karte ist ein Objekt, das Schlüssel Werten zuordnet und keine doppelten Schlüssel enthalten kann.

20. Welche Datentypen unterstützt Java? Was ist Autoboxing und Unboxing?

Antwort: Die Programmiersprache Java unterstützt die folgenden acht primitiven Datentypen:
  • Byte
  • kurz
  • int
  • lang
  • schweben
  • doppelt
  • Boolescher Wert
  • verkohlen
Autoboxing ist eine vom Java-Compiler durchgeführte automatische Konvertierung zwischen primitiven Typen und ihren entsprechenden Objekt-Wrapper-Klassen. Wenn die Transformation in die entgegengesetzte Richtung geht, wird dieser Vorgang Unboxing genannt . Vielen Dank fürs Lesen und viel Glück bei Ihrem technischen Interview!

Vorteile der Kenntnis mehrerer Programmiersprachen

Quelle: Dev.to Ich persönlich bin davon überzeugt, dass jeder Entwickler mehr als eine Programmiersprache beherrschen sollte. Mit anderen Worten: Wenn wir über Programmiersprachen sprechen, muss der Entwickler polyglott sein.Kaffeepause Nr. 58.  20 wichtige Interviewfragen, die ein Java-Entwickler kennen sollte.  Vorteile der Kenntnis mehrerer Programmiersprachen – 2

Primär- und Sekundärsprachen

Zur Vereinfachung möchte ich einige der in diesem Artikel verwendeten Begriffe erläutern. Ich glaube, dass jeder Entwickler eine Sprache haben sollte, die er bevorzugt. Ich nenne diese Sprache die Hauptsprache. Ich werde alle Sprachen außer der Hauptsprache als Hilfssprache bezeichnen. Natürlich kann ein Entwickler im Laufe seiner Karriere seine Hauptsprache (mehr als einmal) ändern. Es ist in Ordnung. Es gibt viele Gründe, warum dies erklärt wird.

Experte

In Diskussionen über polyglotte Entwickler wird häufig das Argument vorgebracht, dass die Kenntnisse des Entwicklers in einer zweiten Sprache auf Kosten einer geringeren Beherrschung seiner Primärsprache gehen. Befürworter dieser Idee gehen davon aus, dass das Erlernen jeder neuen Sprache Zeit braucht und diese Zeit nicht mehr für den Erwerb von Kenntnissen in der Primärsprache aufgewendet werden kann. Diese Denkweise erscheint mir falsch. Ich sehe eine andere Analogie: Sport. Es ist bekannt, dass die Ausübung einer Sportart die Leistung in einer anderen Sportart verbessert. Natürlich können Sie in beiden Disziplinen Goldmedaillen gewinnen, und Darts wird Sie wahrscheinlich nicht zu einem besseren Schwimmer machen. Wenn Sie hingegen Kletterer sind, hilft Ihnen Yoga dabei, Flexibilität und Gleichgewicht zu entwickeln. Wenn Sie Yoga praktizieren, werden Sie also ein besserer Kletterer, als Sie es ohne Yoga wären. Ich denke, dass das Erlernen jeder weiteren Sprache oft auch Ihre Fähigkeiten in den anderen Sprachen, die Sie beherrschen, verbessern wird.

Größeres Werkzeugsortiment

Darüber hinaus verbessern die Kenntnisse mehrerer Programmiersprachen Ihr Arsenal als Entwickler erheblich. Es erweitert Ihren Horizont und ermöglicht Ihnen, bestimmte Dinge aus verschiedenen Perspektiven zu betrachten. Nehmen wir ein Beispiel aus dem Alltag. Wenn Sie schon einmal einen Schraubenzieher verwendet haben, sind Ihnen Kreuzschlitzschrauben bekannt. Auf den ersten Blick sind alle Kreuzschlitzschrauben gleich und es scheint, als könnten sie alle mit einem Schraubenzieher festgezogen werden. Ja, es kommt vor, dass es für Sie schwierig ist, eine Schraube festzuziehen oder zu lösen, aber im Allgemeinen reicht Ihnen ein Schraubenzieher. Kaffeepause Nr. 58.  20 wichtige Interviewfragen, die ein Java-Entwickler kennen sollte.  Vorteile der Kenntnis mehrerer Programmiersprachen – 3Aber eines Tages gehen Sie in ein Werkzeuggeschäft, sehen sich all diese schönen Schraubendreher an und stellen fest, dass es verschiedene Arten von Kreuzschlitzschraubendrehern gibt. Sie sehen, dass der Schraubendreher, den Sie bereits haben, ein Kreuzschlitzschraubendreher (PH) ist, und beschließen, dessen Zwillingsschwester, den Pozidriv (PZ), zu kaufen. Und dann stellt sich plötzlich heraus, dass für manche Schrauben eine besser geeignet ist und für andere eine andere. Sie sehen gleich aus, sind aber nicht austauschbar . (Wenn Sie sich gefragt haben, was die Buchstaben PH und PZ auf Ihren Schraubendrehern bedeuten – jetzt wissen Sie es). Mit mehr Wissen und einem zusätzlichen Werkzeug können Sie beim nächsten Anziehen einer Kreuzschlitzschraube bessere Arbeit leisten. Dasselbe gilt auch für Programmiersprachen.

Sie müssen nicht für zusätzliches Wissen bezahlen

Daher sehe ich persönlich keinen Sinn darin, eine zusätzliche Programmiersprache zu lernen. Werden Sie in beiden Sprachen gleich gut sein? Wahrscheinlich nicht, aber es ist unwahrscheinlich, dass das Ihr Ziel ist. Lernen Sie etwas Neues über Ihre Muttersprache? Da bin ich mir absolut sicher. Die Kenntnis einer neuen Sprache wird die Unterschiede zwischen ihnen offenbaren. Und das wiederum wird Ihre Neugier wecken. Sie werden sich fragen, warum die Dinge in einer neuen Sprache anders gemacht werden und was sie bewirken. Abschließend gebe ich ein Beispiel aus dem Leben. Ich habe ein in Python geschriebenes Befehlszeilentool verwendet. Jedes Mal, wenn ich dieses Tool auf einem neuen Computer installierte, gab es Probleme, und mit jedem Update nahm die Anzahl der Probleme zu. Wenn Sie Go in Ihrem Werkzeugkasten haben, werden Sie den Vorteil in diesem Szenario sofort bemerken. Mit Go können Sie seine Artefakte in einer eigenständigen Binärdatei kompilieren. Sie können sicher sein, dass die Binärdatei nach der Kompilierung auf jedem Computer funktioniert, für den Sie sie kompiliert haben. Also habe ich die Python-CLI auf Go portiert. Mit dieser neuen Version musste ich mir keine Gedanken mehr über Änderungen an der Laufzeit oder über Abhängigkeiten von Drittanbietern machen. Dies ist ein hervorragendes Beispiel für die Auswahl des am besten geeigneten Werkzeugs für die jeweilige Aufgabe. Und um wählen zu können, müssen Sie ein polyglotter Entwickler werden.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION