JavaRush /Java-Blog /Random-DE /Knifflige Java-Fragen, die in Vorstellungsgesprächen häuf...

Knifflige Java-Fragen, die in Vorstellungsgesprächen häufig gestellt werden

Veröffentlicht in der Gruppe Random-DE
Wenn Sie sich schon einmal auf ein Vorstellungsgespräch für die Position eines Java-Programmierers vorbereitet oder eine Prüfung (nicht unbedingt in Programmierung) abgelegt haben, um ein Zertifikat zu erhalten, dann ist Ihnen höchstwahrscheinlich bereits aufgefallen, dass die gestellten Fragen sehr spezifisch sind. Viele von ihnen regen zum Nachdenken über die Architektur der Sprache an, andere sind auf tiefes Wissen ausgelegt. Es gibt auch solche, die eher wie Rätsel sind oder Nuancen betreffen, die ohne Übung nur sehr schwer zu erfühlen sind. In diesem Artikel stellt der Entwickler Saraans Singh mehrere solcher Java-Fragen. Natürlich mit Antworten. Knifflige Java-Fragen, die oft in Vorstellungsgesprächen gestellt werden – 11. Was passiert, wenn Sie eine return- oder System.exit()-Anweisung in einen try/catch-Block einfügen? Dies ist eine sehr beliebte „Nachholfrage“ in Java. Der Trick besteht darin, dass viele Programmierer glauben, dass der Block finallyauf jeden Fall ausgeführt wird. Diese Frage stellt dieses Konzept in Frage, indem eine Anweisung returnin einem Block platziert try/catchoder von einem try/catchAnweisungsblock aus aufgerufen wird System.exit (). Die Antwort auf diese knifflige Frage lautet: Der Block finallywird ausgeführt, wenn eine Anweisung returnin einem Block platziert wird try/catch, und wird nicht ausgeführt, wenn er von einem try/catchAnweisungsblock aus aufgerufen wird System.exit (). 2. Unterstützt Java Mehrfachvererbung? Das ist eine sehr knifflige Frage. Interviewer sagen oft: Wenn C++ die direkte Mehrfachvererbung unterstützen kann, warum kann Java das nicht? Die Antwort ist etwas komplizierter, als es den Anschein hat, da Java die Vererbung mehrerer Typen unterstützt, da eine darin enthaltene Schnittstelle andere Schnittstellen erweitern kann. Die Java-Sprache unterstützt jedoch keine Mehrfachvererbung von Implementierungen. 3. Kann eine Methode, die eine Ausnahme NullPointerExceptionin der übergeordneten Klasse auslöst, von der Methode überschrieben werden, die auslöst RuntimeException? Eine weitere knifflige Frage im Zusammenhang mit den Konzepten des Überladens und Überschreibens. Antwort: Sie können sicher eine Ausnahme einer übergeordneten Klasse in einer überschriebenen Methode auslösen NullPointerException – RuntimeException, aber Sie können das Gleiche nicht mit einer geprüften Ausnahme vom Typ tun Exception. 4. Wie kann sichergestellt werden, dass Threads ohne Deadlocks auf Ressourcen zugreifen können ? NN Wenn Sie nicht sehr gut darin sind, Multithread-Code zu schreiben, wird diese Frage für Sie sehr schwierig sein. Es kann selbst für einen erfahrenen Programmierer, der sich nicht mit Deadlocks und Rennbedingungen befasst hat, eine Herausforderung sein. Der Trick liegt hier in der Reihenfolge: Deadlocks können verhindert werden, indem Ressourcen in der umgekehrten Reihenfolge freigegeben werden, in der sie erworben wurden. 5. Was ist der Unterschied zwischen Klassen StringBufferund StringBuilderin der Java-Sprache? Eine klassische Frage zur Java-Sprache, die von einigen Entwicklern als knifflig und von anderen als sehr einfach angesehen wird. Die Klasse StringBuilderwurde in JDK 1.5 eingeführt und der einzige Unterschied zwischen ihnen besteht darin, dass die Methoden der Klasse StringBuffer, zum Beispiel length()oder capacity(), append()synchronisiert sind, während dies bei den entsprechenden Methoden der Klasse StringBuildernicht der Fall ist. Aufgrund dieses grundlegenden Unterschieds StringBuilderist die Zeichenfolgenverkettung mit schneller StringBuffer. Tatsächlich StringBufferwird die Verwendung nicht empfohlen, da in 99 % der Anwendungsfälle die Zeichenfolgenverkettung im selben Thread erfolgt. 6. Was gibt der Ausdruck 1.0/0.0 zurück? Wird es eine Ausnahme auslösen oder einen Kompilierungsfehler verursachen? Noch eine knifflige Frage zur Klasse Double. Obwohl Java-Entwickler den einfachen Datentyp double und die Klasse kennen , schenken sie bei der Ausführung von DoubleGleitkommaoperationen nicht genügend Aufmerksamkeit den Double.INFINITY, und den Regeln, die die damit verbundenen arithmetischen Berechnungen regeln. Die Antwort auf diese Frage ist einfach: Es wird keine Ausnahme ausgelöst, der Wert wird zurückgegeben . 7. Was passiert, wenn Sie versuchen , ein Schlüsselobjekt in ein darin bereits vorhandenes Schlüsselobjekt einzufügen ? Diese knifflige Frage ist Teil einer anderen häufig gestellten Frage: Wie funktionieren sie in Java? ist ein beliebtes Thema für verwirrende und knifflige Fragen zur Java-Sprache. Die Antwort lautet: Wenn Sie versuchen, einen Schlüssel erneut in einzufügen , wird der alte ersetzt, da die Klasse keine doppelten Schlüssel zulässt. Und der gleiche Schlüssel bedeutet den gleichen Hash-Code, sodass er an derselben Stelle im Hash-Segment landet. Basierend auf Materialien von QuoraNaN-0.0ArithmeticExceptionDouble.INFINITYHashMapHashMapHashMapHashMapHashMap
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION