JavaRush /Java Blog /Random EN /15 questions for a technical interview for a Java program...
dio
Level 16
Москва

15 questions for a technical interview for a Java programmer with 5-6 years of experience

Published in the Random EN group
As the programmer's experience increases from the level of a beginner developer (from 2 to 4 years of experience) to the level of a senior developer (from 5 to 7 years), the interview questions on Core Java also change. 15 questions for a technical interview for a Java programmer with 5-6 years of experience - 1Of course, the basics like data structures, algorithms, and object-oriented programming remain, but the questions and answers become more detailed. I often receive questions about what Core Java questions are asked of senior developers, or what questions to expect in an interview for a senior Java developer position. This puzzles me for a while because once you become a senior developer, you automatically start taking part in interviews and you need to have an idea of ​​what to expect from the interview, but at the same time, I understand that knowing the interview questions, It will be easier for you to prepare for it. Of course, you won't get questions that are asked to programmers with 2-3 years of experience with Java, although this is not excluded at the beginning of the interview. I don't see any differences between telephone interviews and face-to-face interviews. Some questions remain the same, some questions require more detailed answers. In this article, I will share 15 Core Java technical questions that were asked in senior developer interviews during phone interviews. I'm not posting all the answers, but you can find them on the current blog or on the Javarevisited blog .

15 questions on Core Java for programmers with 5-6 development experience

All questions were received from working senior developers with more than 5 years of experience. Developers encountered these questions at various stages of employment, including telephone and face-to-face interviews.
  1. How does a getclass method work HashMapin Java?

    Yes, this is still one of the most popular questions for a senior developer, you should expect it in a phone interview, there will probably be many related questions after that, check out the answers to them here .

  2. Which 2 methods should the key object implement HashMap?

    equalsAndhashcode

  3. Why should objects used as a key be immutable?

    So that the hash code always returns the same value.

  4. How is ConcurrentHashMapscalability achieved?

    Sometimes this question sounds like this in an interview: the difference between ConcurrentHashMapand Hashtablein Java, look for answers here .

  5. How to make an object shared between different threads? Or how to pass an object from one thread to another?

    There are many ways to implement this, such as queues, exchangers, but blocking queues with the Producer/Consumer design pattern are the simplest way to pass an object from one thread to another.

  6. How do you know if your program has a deadlock?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Настоятельно рекомендую посмотреть мою статью 10 принципов an objectно ориентированного дизайна, которые должен знать программист Java, по крайней мере иметь представление о том How эти принципы помогут вам писать an objectно ориентированный code. Если у вас нет ответа на этот вопрос, вы можете вежливо ответить "нет" , никто не ожидает от вас знания ответов на все вопросы. Однако зная ответ на вопрос, который вызывает затруднения у большинства разработчиков, вы делаете свою кандиdateру на собеседовании очень сильной.

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

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

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

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

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

    In fact, there is only one difference between all types of references - the behavior of Java Garbage Collector with the objects they refer to. In Java, objects created using the new operator are created by strong reference. The garbage collector destroys such objects only when there are no longer strong references to them. The java.lang.ref package has 3 classes that describe 3 types of links, respectively SoftReference, WeakReference, PhantomReference. Objects created via SoftReference will be collected in case the JVM requires memory. That is, there is a guarantee that all SoftReference objects will be collected before the JVM throws an OutOfMemoryError exception. SoftReference is often used for memory-intensive caches. WeakReference does not save an object from being finalized, even if there is sufficient free memory. As soon as there are no strong and soft references left to the object, it can be finalized. Used for caches and for creating chains of interconnected objects. Objects created through PhantomReference are destroyed when the GC determines that the referenced objects can be deallocated. This type of reference is used as an alternative to finalization (for more flexible resource release).

    This is the entire list of senior Java developer interview questions. I have not included many important questions about exception handling, garbage collector, JVM configuration which are very popular among senior developers, maybe I will include them in the next part. But if you do not find answers to any of the questions, let me know and I will update this post for my regular readers.

Original article: 15 Technical Core Java Interview Questions Answers for Experienced Developers
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION