JavaRush /Java-Blog /Random-DE /15 Fragen für ein technisches Interview für einen Java-Pr...
dio
Level 16
Москва

15 Fragen für ein technisches Interview für einen Java-Programmierer mit 5-6 Jahren Erfahrung

Veröffentlicht in der Gruppe Random-DE
Da die Erfahrung des Programmierers vom Niveau eines Anfängerentwicklers (von 2 auf 4 Jahre Erfahrung) auf das Niveau eines Senior-Entwicklers (von 5 auf 7 Jahre) steigt, ändern sich auch die Interviewfragen zu Core Java. 15 Fragen für ein technisches Interview für einen Java-Programmierer mit 5-6 Jahren Erfahrung - 1Natürlich bleiben die Grundlagen wie Datenstrukturen, Algorithmen und objektorientierte Programmierung erhalten, aber die Fragen und Antworten werden detaillierter. Ich erhalte oft Fragen dazu, welche Kern-Java-Fragen an leitende Entwickler gestellt werden oder welche Fragen in einem Vorstellungsgespräch für eine Stelle als leitender Java-Entwickler zu erwarten sind. Das verwirrt mich eine Weile, denn sobald man ein leitender Entwickler ist, nimmt man automatisch an Vorstellungsgesprächen teil und muss eine Vorstellung davon haben, was man von dem Vorstellungsgespräch erwartet, aber gleichzeitig verstehe ich das, wenn ich das Vorstellungsgespräch kenne Fragen, es wird Ihnen leichter fallen, sich darauf vorzubereiten. Natürlich werden Sie keine Fragen bekommen, die an Programmierer mit 2-3 Jahren Erfahrung mit Java gestellt werden, obwohl dies zu Beginn des Interviews nicht ausgeschlossen ist. Ich sehe keine Unterschiede zwischen Telefoninterviews und persönlichen Interviews. Manche Fragen bleiben gleich, manche Fragen erfordern detailliertere Antworten. In diesem Artikel werde ich 15 technische Fragen zu Core Java teilen , die in Interviews mit leitenden Entwicklern während Telefoninterviews gestellt wurden. Ich veröffentliche nicht alle Antworten, aber Sie können sie im aktuellen Blog oder im Javarevisited- Blog finden .

15 Fragen zu Core Java für Programmierer mit 5-6 Entwicklungserfahrungen

Alle Fragen wurden von erfahrenen Entwicklern mit mehr als 5 Jahren Erfahrung gestellt. Entwickler begegneten diesen Fragen in verschiedenen Phasen ihrer Beschäftigung, einschließlich Telefon- und persönlichen Vorstellungsgesprächen.
  1. Wie funktioniert eine getKlassenmethode HashMapin Java?

    Ja, dies ist immer noch eine der beliebtesten Fragen für einen leitenden Entwickler. Sie sollten damit in einem Telefoninterview rechnen. Danach wird es wahrscheinlich viele verwandte Fragen geben. Die Antworten darauf finden Sie hier .

  2. Welche 2 Methoden sollte das Schlüsselobjekt implementieren HashMap?

    equalsUndhashcode

  3. Warum sollten als Schlüssel verwendete Objekte unveränderlich sein?

    Damit der Hash-Code immer den gleichen Wert zurückgibt.

  4. Wie wird ConcurrentHashMapSkalierbarkeit erreicht?

    Manchmal klingt diese Frage in einem Interview so: Der Unterschied zwischen ConcurrentHashMapund in Java, hierHashtable finden Sie Antworten .

  5. Wie erstelle ich ein Objekt, das von verschiedenen Threads gemeinsam genutzt wird? Oder wie übergibt man ein Objekt von einem Thread an einen anderen?

    Есть много путей реализации этого, такие Wie очереди, обменники, но блокируемые очереди с шаблоном проектирования Producer/Consumer это самый простой способ, чтобы передать ein Objekt из одного потока в другой.

  6. Как узнать что в вашей программе есть взаимная блокировка?

    (Получив дамп потока, используя kill -3, применяя JConsole oder VisualVM). Я предлагаю подготовиться к этому вопросу на интервью очень тщательно, так Wie интервьюеры любят детали, они спрашивают бывали ли в вашем проекте подобные проблемы и Wie вам удалось их решить.

  7. Как избежать взаимных блокировок при Codeировании?

    Was бы разобраться с блокировками и получить полную информацию о теме, прочтите это.

  8. Was такое ожидание занятости ("Busy spinning")? Почему вы должны использовать его?

    Один из интереснейших вопросов многопоточности для старшего разработчика Java, Busy spinning это стратегия ожидания, когда поток выполняет ожидание в цикле, при этом не используя ресурсы процессора и Wie бы засыпая. Эту стратегию используют когда время ожидания очень мало, при этом не нагружается процессор и не останавливается поток, сохраняются все данные, которые могут быть потеряны при запуске потока на другом ядре процессора. Этот вопрос популярен у программистов создающих высоко нагруженные проекты, где программисты добиваются чрезвычайно низких задержек в работе, в диапазоне микро- и мoder- секунд.

  9. Was такое блокировка Чтения и Записи (ReadWriteLock)? Использует ли ConcurrentHashMap ReadWrite блокировки?

    Блокировка Чтения и Записи это такая реализация блокировки, когда несколько разных потоков пытаются произвести операцию чтения и записи с одним ein Objektом. сама по себе операция чтения не изменяет ein Objekt, что допускает многопоточные операции чтения без блокировок. Java предоставляет реализацию ReadWriteLock с которой стоит ознакомиться. Например ConcurrentHashMap не применяет ReadWriteLock, anstatt этого он делит Hash на отдельные части и блокирует их отдельно, таким образом в любой момент времени заблокирована только часть хеша, а не он весь. Этот вопрос популярен у опытных разработчиков, обычно просят ответить подробнее, спрашивают разные реализации ReadWriteLock для разных случаев.

  10. Как сделать ein Objekt иммутабельным (не изменяемым) в Java? Зачем делать ein Objekt иммутабельным?

    Иммутабельность предполагает несколько преимуществ включая потокобезопасность, возможность кеширования, а так же делает многопоточный Code более читаемым.

    Посмотрите это и научитесь делать ein Objektы иммутабельными. На собеседовании по этому вопросу возможны дополнительные уточнения, в зависимости от полноты вашего ответа. Например когда вы говорите, что Spring иммутабельный, будьте готовы ответить почему строки так же иммутабельны в Java.

  11. Какие шаблоны проектирования в используете?

    Всегда ожидайте вопрос о шаблонах проектирования на собеседовании к вакансии старшего разработчика. Лучше отметить любой GOF шаблон, а не Singleton oder MVC который использует каждый второй Java программист. Лучший ответ может быть шаблон Декоратор oder шаблон Внедрение зависимости, которые довольно популярны в Spring Framework. Так же хорошо если называемые вами шаблоны проектирования вы действительно использовали и знаете к Wieому компромиссу ведет их применение. Как только вы произнесете название шаблона проектирования, например: "Фабрика", интервьюер тут же спросит: "Вы использовали это в своих проектах ?" Поэтому будьте готовы привести примеры и рассказать почему вы выбрали в своем проекте именно этот шаблон.

  12. Знаете ли вы о принципе Открытости/Закрытости oder Принцип подстановки Барбары Лисков?

    Шаблоны проектирования основаны на принципах ein Objektно-ориентированного проектирования.

    Настоятельно рекомендую посмотреть мою статью 10 принципов ein Objektно ориентированного дизайна, которые должен знать программист Java, по крайней мере иметь представление о том Wie эти принципы помогут вам писать ein Objektно ориентированный Code. Если у вас нет ответа на этот вопрос, вы можете вежливо ответить "нет" , никто не ожидает от вас знания ответов на все вопросы. Однако зная ответ на вопрос, который вызывает затруднения у большинства разработчиков, вы делаете свою кандиDatumру на собеседовании очень сильной.

  13. Какой шаблон проектирования будете использовать, что бы защитить ваш Code от сторонней библиотеки, которая будет заменена через пару лет ?

    Это всего лишь один из возможных вариаций вопроса о шаблонах проектирования, которые могут быть заданы вам в зависимости от того о чем вы говорите сейчас на собеседовании. Один из способов Wie оградить свой Code от сторонней библиотеки, это зависимость от интерфейса, а не от реализации и использование зависимостей что бы обеспечить конкретную реализацию. Подобные вопросы часто задают старшим разработчикам с 5-7 годами опыта работы.

  14. Как предотвратить SQL инъекцию в Codeе на Java?

    Этот вопрос чаще задают Java EE разработчикам, чем обычным Java программистам, тем не менее это отличный повод узнать о PreparedStatement. PreparedStatement — это ein Objekt, который представляет предварительно скомпoderрованный SQL-оператор. PreparedStatement не только обеспечивает более высокую производительность, но и защищает от SQL инъекций. Если вы работаете по большей части с Java EE oder J2EE, вы должны быть знакомы с некоторыми вопросами безопасности, в том числе "атака Фиксации Сессии" oder "межсайтовый скриптинг", так же вам нужно уметь избегать этих атак.

  15. Расскажите об отличиях типов ссылок в Java, таких Wie WeakReference, SoftReference и PhantomReference? И почему вы должны их использовать?

    Tatsächlich gibt es zwischen allen Referenztypen nur einen Unterschied – das Verhalten von Java Garbage Collector mit den Objekten, auf die sie verweisen. In Java werden Objekte, die mit dem neuen Operator erstellt wurden, durch starke Referenz erstellt. Der Garbage Collector zerstört solche Objekte erst, wenn keine starken Verweise mehr auf sie bestehen. Das Paket java.lang.ref verfügt über drei Klassen, die drei Arten von Links beschreiben: SoftReference, WeakReference und PhantomReference. Über SoftReference erstellte Objekte werden gesammelt, falls die JVM Speicher benötigt. Das heißt, es besteht die Garantie, dass alle SoftReference-Objekte erfasst werden, bevor die JVM eine OutOfMemoryError-Ausnahme auslöst. SoftReference wird häufig für speicherintensive Caches verwendet. WeakReference verhindert nicht, dass ein Objekt finalisiert wird, selbst wenn ausreichend freier Speicher vorhanden ist. Sobald keine starken und weichen Referenzen mehr zum Objekt vorhanden sind, kann es finalisiert werden. Wird für Caches und zum Erstellen von Ketten miteinander verbundener Objekte verwendet. Durch PhantomReference erstellte Objekte werden zerstört, wenn der GC feststellt, dass die Zuordnung der referenzierten Objekte aufgehoben werden kann. Diese Art der Referenz wird als Alternative zur Finalisierung verwendet (für eine flexiblere Ressourcenfreigabe).

    Dies ist die vollständige Liste der Interviewfragen für leitende Java-Entwickler. Ich habe nicht viele wichtige Fragen zur Ausnahmebehandlung, zum Garbage Collector und zur JVM-Konfiguration aufgenommen, die bei erfahrenen Entwicklern sehr beliebt sind. Vielleicht werde ich sie im nächsten Teil aufnehmen. Aber wenn Sie auf eine der Fragen keine Antworten finden, lassen Sie es mich wissen und ich werde diesen Beitrag für meine regelmäßigen Leser aktualisieren.

Originalartikel: 15 Interviewfragen und Antworten zum technischen Kern von Java für erfahrene Entwickler
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION