JavaRush /جاوا بلاگ /Random-UR /5-6 سال کا تجربہ رکھنے والے جاوا پروگرامر کے لیے تکنیکی ا...
dio
سطح
Москва

5-6 سال کا تجربہ رکھنے والے جاوا پروگرامر کے لیے تکنیکی انٹرویو کے لیے 15 سوالات

گروپ میں شائع ہوا۔
جیسے جیسے پروگرامر کا تجربہ ایک ابتدائی ڈویلپر کی سطح (2 سے 4 سال کے تجربے سے) ایک سینئر ڈویلپر کی سطح تک (5 سے 7 سال تک) بڑھتا ہے، کور جاوا پر انٹرویو کے سوالات بھی بدل جاتے ہیں۔ بے شک، ڈیٹا ڈھانچے، الگورتھم، اور آبجیکٹ پر مبنی پروگرامنگ5-6 سال کا تجربہ رکھنے والے جاوا پروگرامر کے لیے تکنیکی انٹرویو کے لیے 15 سوالات - 1 جیسی بنیادی باتیں باقی ہیں، لیکن سوالات اور جوابات مزید تفصیلی ہو جاتے ہیں۔ مجھے اکثر اس بارے میں سوالات موصول ہوتے ہیں کہ سینئر ڈویلپرز سے بنیادی جاوا کے کون سے سوالات پوچھے جاتے ہیں، یا جاوا ڈویلپر کی سینئر پوزیشن کے لیے انٹرویو میں کن سوالات کی توقع کی جائے۔ یہ بات مجھے تھوڑی دیر کے لیے پریشان کر دیتی ہے کیونکہ ایک بار جب آپ سینئر ڈویلپر بن جاتے ہیں، تو آپ خود بخود انٹرویوز میں حصہ لینا شروع کر دیتے ہیں اور آپ کو اس بات کا اندازہ ہونا چاہیے کہ انٹرویو سے کیا امید رکھی جائے، لیکن ساتھ ہی، میں سمجھتا ہوں کہ انٹرویو جان کر سوالات، آپ کے لیے اس کی تیاری کرنا آسان ہو جائے گا۔ یقیناً، آپ کو ایسے سوالات نہیں ملیں گے جو جاوا کے ساتھ 2-3 سال کا تجربہ رکھنے والے پروگرامرز سے پوچھے جاتے ہیں، حالانکہ انٹرویو کے آغاز میں اسے خارج نہیں کیا جاتا ہے۔ مجھے ٹیلی فون انٹرویوز اور آمنے سامنے انٹرویوز میں کوئی فرق نظر نہیں آتا۔ کچھ سوالات جوں کے توں رہتے ہیں، کچھ سوالات مزید تفصیلی جوابات کے متقاضی ہیں۔ اس مضمون میں، میں جاوا کے 15 بنیادی تکنیکی سوالات کا اشتراک کروں گا جو فون انٹرویو کے دوران سینئر ڈویلپر انٹرویوز میں پوچھے گئے تھے۔ میں تمام جوابات پوسٹ نہیں کر رہا ہوں، لیکن آپ انہیں موجودہ بلاگ یا Javarevisited blog پر تلاش کر سکتے ہیں ۔

5-6 ترقیاتی تجربے کے ساتھ پروگرامرز کے لیے کور جاوا پر 15 سوالات

تمام سوالات 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 کو میموری کی ضرورت ہو۔ یعنی، اس بات کی گارنٹی ہے کہ JVM کی طرف سے OutOfMemoryError کی رعایت پھینکنے سے پہلے تمام SoftReference آبجیکٹ جمع کر لیے جائیں گے۔ SoftReference اکثر میموری سے متعلق کیش کے لیے استعمال ہوتا ہے۔ WeakReference کسی چیز کو حتمی شکل دینے سے نہیں بچاتا، چاہے کافی مفت میموری موجود ہو۔ جیسے ہی اعتراض کے لیے کوئی مضبوط اور نرم حوالہ باقی نہ رہے، اسے حتمی شکل دی جا سکتی ہے۔ کیش کے لیے اور باہم جڑی ہوئی اشیاء کی زنجیریں بنانے کے لیے استعمال کیا جاتا ہے۔ PhantomReference کے ذریعے تخلیق کردہ اشیاء تب تباہ ہو جاتی ہیں جب GC اس بات کا تعین کرتا ہے کہ حوالہ شدہ اشیاء کو ڈی ایلوکیٹ کیا جا سکتا ہے۔ اس قسم کے حوالہ کو حتمی شکل دینے کے متبادل کے طور پر استعمال کیا جاتا ہے (مزید لچکدار وسائل کی رہائی کے لیے)۔

    یہ جاوا کے سینئر ڈویلپر انٹرویو کے سوالات کی پوری فہرست ہے۔ میں نے استثنیٰ ہینڈلنگ، کوڑا اٹھانے والے، جے وی ایم ٹیوننگ کے بارے میں بہت سے اہم سوالات شامل نہیں کیے ہیں، جو سینئر ڈویلپرز میں بہت مقبول ہیں، شاید میں انہیں اگلے حصے میں شامل کروں۔ لیکن اگر آپ کو کسی بھی سوال کے جواب نہیں ملے تو مجھے بتائیں اور میں اس پوسٹ کو اپنے باقاعدہ قارئین کے لیے اپ ڈیٹ کروں گا۔

اصل مضمون: 15 ٹیکنیکل کور جاوا انٹرویو سوالات کے جوابات تجربہ کار ڈویلپرز کے لیے
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION