JavaRush /Java Blog /Random-ID /15 pertanyaan untuk wawancara teknis untuk programmer Jav...
dio
Level 16
Москва

15 pertanyaan untuk wawancara teknis untuk programmer Java dengan pengalaman 5-6 tahun

Dipublikasikan di grup Random-ID
Seiring dengan bertambahnya pengalaman programmer dari level developer pemula (dari 2 menjadi 4 tahun pengalaman) ke level developer senior (dari 5 menjadi 7 tahun), pertanyaan wawancara di Core Java juga berubah. 15 pertanyaan untuk wawancara teknis untuk programmer Java dengan pengalaman 5-6 tahun - 1Tentu saja, dasar-dasar seperti struktur data, algoritma, dan pemrograman berorientasi objek tetap ada, namun pertanyaan dan jawabannya menjadi lebih rinci. Saya sering menerima pertanyaan tentang pertanyaan Core Java apa yang ditanyakan kepada pengembang senior, atau pertanyaan apa yang diharapkan dalam wawancara untuk posisi pengembang senior Java. Ini membingungkan saya untuk sementara waktu karena begitu Anda menjadi pengembang senior, Anda secara otomatis mulai mengambil bagian dalam wawancara dan Anda perlu memiliki gambaran tentang apa yang diharapkan dari wawancara tersebut, tetapi pada saat yang sama, saya memahami bahwa mengetahui wawancara tersebut pertanyaan, Akan lebih mudah bagi Anda untuk mempersiapkannya. Tentu saja, Anda tidak akan mendapatkan pertanyaan yang ditanyakan kepada programmer dengan pengalaman 2-3 tahun dengan Java, meskipun hal ini tidak terkecuali di awal wawancara. Saya tidak melihat adanya perbedaan antara wawancara telepon dan wawancara tatap muka. Beberapa pertanyaan tetap sama, beberapa pertanyaan memerlukan jawaban yang lebih rinci. Pada artikel ini, saya akan membagikan 15 pertanyaan teknis Inti Java yang ditanyakan dalam wawancara pengembang senior selama wawancara telepon. Saya tidak memposting semua jawabannya, tetapi Anda dapat menemukannya di blog saat ini atau di blog Javarevisited .

15 pertanyaan tentang Core Java untuk programmer dengan 5-6 pengalaman pengembangan

Semua pertanyaan diterima dari pengembang senior yang bekerja dengan pengalaman lebih dari 5 tahun. Pengembang menghadapi pertanyaan-pertanyaan ini di berbagai tahap pekerjaan, termasuk wawancara melalui telepon dan tatap muka.
  1. Bagaimana cara kerja metode getkelas HashMapdi Java?

    Ya, ini masih salah satu pertanyaan paling populer untuk pengembang senior, Anda harus mengharapkannya dalam wawancara telepon, mungkin akan ada banyak pertanyaan terkait setelah itu, lihat jawabannya di sini .

  2. 2 metode mana yang harus diterapkan oleh objek kunci HashMap?

    equalsDanhashcode

  3. Mengapa objek yang digunakan sebagai kunci tidak dapat diubah?

    Sehingga kode hash selalu mengembalikan nilai yang sama.

  4. Bagaimana ConcurrentHashMapskalabilitas dicapai?

    Terkadang pertanyaan ini terdengar seperti ini dalam sebuah wawancara: perbedaan antara ConcurrentHashMapdan Hashtabledi Jawa, cari jawabannya di sini .

  5. Bagaimana cara membuat objek dibagikan di antara berbagai utas? Atau bagaimana cara meneruskan objek dari satu thread ke thread lainnya?

    Есть много путей реализации этого, такие 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? И почему вы должны их использовать?

    Faktanya, hanya ada satu perbedaan antara semua jenis referensi - perilaku Java Garbage Collector dengan objek yang dirujuknya. Di Java, objek yang dibuat menggunakan operator baru dibuat dengan referensi yang kuat. Pengumpul sampah menghancurkan benda-benda tersebut hanya jika tidak ada lagi referensi yang kuat terhadap benda tersebut. Paket java.lang.ref memiliki 3 kelas yang menjelaskan 3 jenis link masing-masing SoftReference, WeakReference, PhantomReference. Objek yang dibuat melalui SoftReference akan dikumpulkan jika JVM memerlukan memori. Artinya, ada jaminan bahwa semua objek SoftReference akan dikumpulkan sebelum JVM mengeluarkan pengecualian OutOfMemoryError. SoftReference sering digunakan untuk cache yang membutuhkan banyak memori. WeakReference tidak menyimpan objek agar tidak diselesaikan, meskipun terdapat cukup memori bebas. Segera setelah tidak ada referensi kuat dan lunak yang tersisa pada objek tersebut, maka dapat diselesaikan. Digunakan untuk cache dan untuk membuat rantai objek yang saling berhubungan. Objek yang dibuat melalui PhantomReference dimusnahkan ketika GC menentukan bahwa objek yang direferensikan dapat dibatalkan alokasinya. Jenis referensi ini digunakan sebagai alternatif penyelesaian (untuk pelepasan sumber daya yang lebih fleksibel).

    Ini adalah seluruh daftar pertanyaan wawancara pengembang senior Java. Saya belum menyertakan banyak pertanyaan penting tentang penanganan pengecualian, pengumpul sampah, konfigurasi JVM yang sangat populer di kalangan pengembang senior, mungkin akan saya sertakan di bagian selanjutnya. Tetapi jika Anda tidak menemukan jawaban atas pertanyaan apa pun, beri tahu saya dan saya akan memperbarui postingan ini untuk pembaca tetap saya.

Artikel asli: 15 Jawaban Pertanyaan Wawancara Java Inti Teknis untuk Pengembang Berpengalaman
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION