JavaRush /جاوا بلاگ /Random-SD /15 سوال هڪ ٽيڪنيڪل انٽرويو لاءِ جاوا پروگرامر لاءِ 5-6 سا...
dio
سطح
Москва

15 سوال هڪ ٽيڪنيڪل انٽرويو لاءِ جاوا پروگرامر لاءِ 5-6 سالن جي تجربي سان

گروپ ۾ شايع ٿيل
جيئن ته پروگرامر جو تجربو هڪ شروعاتي ڊولپر جي سطح کان وڌي ٿو (2 کان 4 سالن جي تجربي کان وٺي) هڪ سينيئر ڊولپر جي سطح تائين (5 کان 7 سالن تائين)، ڪور جاوا تي انٽرويو سوال پڻ تبديل ٿيندا آهن. 15 سوال هڪ ٽيڪنيڪل انٽرويو لاءِ جاوا پروگرامر لاءِ 5-6 سالن جي تجربي سان - 1يقينن، بنياديات جهڙوڪ ڊيٽا جي جوڙجڪ، الگورتھم، ۽ اعتراض تي مبني پروگرامنگ باقي رهي ٿو، پر سوال ۽ جواب وڌيڪ تفصيلي ٿي ويندا آهن. مون کي اڪثر سوال ملندا آهن ته ڪور جاوا جا ڪهڙا سوال سينئر ڊولپرز کان پڇيا ويندا آهن، يا جاوا ڊولپر جي سينيئر پوزيشن لاءِ انٽرويو ۾ ڪهڙا سوال پڇيا ويندا آهن. اهو مون کي ڪجهه دير لاءِ حيران ڪري ٿو ڇو ته هڪ دفعو توهان هڪ سينئر ڊولپر بڻجي ويندا آهيو، توهان خودڪار طريقي سان انٽرويو ۾ حصو وٺڻ شروع ڪندا آهيو ۽ توهان کي اهو خيال رکڻو پوندو ته انٽرويو مان ڪهڙي اميد رکڻ گهرجي، پر ساڳئي وقت، مان سمجهان ٿو ته انٽرويو کي ڄاڻڻ سان. سوال، اهو توهان لاء تيار ڪرڻ لاء آسان ٿي ويندو. يقينن، توهان کي سوال نه ملندا جيڪي پروگرامرز کان پڇيا ويا آهن 2-3 سالن جو جاوا سان تجربو، جيتوڻيڪ اهو انٽرويو جي شروعات ۾ خارج نه ڪيو ويو آهي. مون کي ٽيليفون انٽرويو ۽ منهن ڏيڻ واري انٽرويو جي وچ ۾ ڪوبه فرق نظر نٿو اچي. ڪجھ سوال ساڳيا رھندا آھن، ڪجھ سوالن جا وڌيڪ تفصيلي جواب گھرندا آھن. هن آرٽيڪل ۾، مان حصيداري ڪندس 15 ڪور جاوا ٽيڪنيڪل سوال جيڪي پڇيا ويا سينئر ڊولپر انٽرويو ۾ فون انٽرويو دوران. مان سڀئي جواب پوسٽ نه ڪري رهيو آهيان، پر توهان انهن کي موجوده بلاگ يا Javarevisited بلاگ تي ڳولي سگهو ٿا .

15 سوال ڪور جاوا تي پروگرامرز لاءِ 5-6 ڊولپمينٽ تجربو سان

سڀ سوال 5 سالن کان وڌيڪ تجربي سان ڪم ڪندڙ سينيئر ڊولپرز کان وصول ڪيا ويا. ڊولپرز انهن سوالن کي روزگار جي مختلف مرحلن تي منهن ڏنو، جنهن ۾ ٽيليفون ۽ منهن ڏيڻ وارا انٽرويو شامل آهن.
  1. جاوا ۾ getڪلاس جو طريقو ڪيئن ڪم ڪندو آهي ؟HashMap

    ها، اهو اڃا تائين هڪ سينئر ڊولپر لاءِ مشهور سوالن مان هڪ آهي، توهان کي ان جي اميد رکڻ گهرجي هڪ فون انٽرويو ۾، شايد ان کان پوءِ ڪيترائي لاڳاپيل سوال هوندا، انهن جا جواب هتي چيڪ ڪريو .

  2. ڪهڙن 2 طريقن کي اهم اعتراض لاڳو ڪرڻ گهرجي HashMap؟

    equals۽hashcode

  3. چاٻيءَ جي طور تي استعمال ٿيندڙ شيون غير بدليل ڇو هجن؟

    انهي ڪري ته هيش ڪوڊ هميشه ساڳئي قدر موٽائي ٿو.

  4. ڪيئن ConcurrentHashMapاسڪاليبلٽي حاصل آهي؟

    ConcurrentHashMapڪڏهن ڪڏهن هي سوال هڪ انٽرويو ۾ هن طرح محسوس ٿئي ٿو: جاوا ۽ جاوا جي وچ ۾ فرق Hashtable، جواب ڳولڻ لاء هتي .

  5. مختلف موضوعن جي وچ ۾ هڪ شئي کي ڪيئن ٺاهيو؟ يا ڪنهن شئي کي هڪ سلسلي کان ٻئي تائين ڪيئن منتقل ڪجي؟

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

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

    (Получив дамп потока, используя 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? И почему вы должны их использовать?

    حقيقت ۾، سڀني قسمن جي حوالن جي وچ ۾ صرف هڪ فرق آهي - جاوا گاربيج ڪليڪٽر جو رويي انهن شين سان جيڪي اهي حوالا ڏين ٿا. جاوا ۾، نئين آپريٽر استعمال ڪندي ٺاهيل شيون مضبوط حوالي سان ٺاهيا ويا آهن. ڪچرو گڏ ڪندڙ اهڙين شين کي تڏهن ئي تباه ڪري ٿو جڏهن انهن جا مضبوط حوالا نه هجن. java.lang.ref پيڪيج ۾ 3 طبقا آهن جيڪي 3 قسمن جون لنڪس بيان ڪن ٿا، ترتيبوار SoftReference، WeakReference، PhantomReference. SoftReference ذريعي ٺاهيل شيون گڏ ڪيون وينديون جيڪڏهن JVM کي ميموري جي ضرورت هجي. اهو آهي، اتي هڪ گارنٽي آهي ته سڀ SoftReference شيون گڏ ڪيون وينديون اڳ JVM اڇلائي هڪ OutOfMemoryError استثنا. SoftReference اڪثر ڪري استعمال ڪيو ويندو آهي ميموري-گڏيل ڪيش لاءِ. WeakReference ڪنهن شئي کي حتمي شڪل ڏيڻ کان نٿو بچائي، جيتوڻيڪ اتي ڪافي مفت ياداشت آهي. جيتري قدر ڪو به مضبوط ۽ نرم حوالو نه رهجي وڃي ته ان کي حتمي شڪل ڏئي سگهجي ٿي. ڪيش لاءِ استعمال ٿيل آهي ۽ هڪٻئي سان ڳنڍيل شين جي زنجير ٺاهڻ لاءِ. PhantomReference ذريعي ٺاهيل شيون تباهه ٿي وينديون آهن جڏهن GC اهو طئي ڪري ٿو ته حوالو ڪيل شيون ختم ڪري سگھجن ٿيون. هن قسم جو حوالو استعمال ڪيو ويندو آهي متبادل طور تي حتمي شڪل ڏيڻ (وڌيڪ لچڪدار وسيلن جي ڇڏڻ لاءِ).

    ھي آھي پوري لسٽ سينئر جاوا ڊولپر جي انٽرويو سوالن جي. مون استثنا هينڊلنگ، گاربيج ڪليڪٽر، JVM ٽيوننگ بابت ڪيترائي اهم سوال شامل نه ڪيا آهن، جيڪي سينيئر ڊولپرز ۾ تمام گهڻا مشهور آهن، شايد آئون انهن کي ايندڙ حصي ۾ شامل ڪندس. پر جيڪڏهن توهان ڪنهن به سوالن جا جواب نه ڳوليندا آهيو، مون کي خبر ڏيو ۽ آئون هن پوسٽ کي پنهنجي باقاعده پڙهندڙن لاء اپڊيٽ ڪندس.

اصل مضمون: 15 ٽيڪنيڪل ڪور جاوا انٽرويو سوالن جا جواب تجربيڪار ڊولپرز لاءِ
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION